㈠ c语言或者C++中如何把未知数量的输入数据(譬如整型)存储的内存中并在后面需要的时候逐个调用
C++里面用vector容器可以实现
#include<iostream>
#include<vector>
usingnamespacestd;
intmain()
{
vector<int>vec;
inttemp;
while(cin>>temp)//Ctrl+z结束输入
{
vec.push_back(temp);
}
for(size_ti=0;i<vec.size();i++)//简单的调用,输出
cout<<vec[i]<<"";
cout<<endl;
}
㈡ c语言里怎样输入未知个数的的数据是输入整形,每次输入的数都是随机的(个数和大小都不确定)
没有代码,我只提供基本的思想,给lz
你可以自己写一个函数,初始化一个整型数组,然后每次数据量大于这个数组容量时,在扩容
伪代码如下:
1.初始化一个10位的整型数组 int[],i=0,size=10
2.输入时判断i<=size int[i]=input
3.如果i>size
4.新建一个int[size+5]的数组,并将前面的数据到这个新数组中
5.重复步骤2
㈢ c语言 读入未知行 未知个数的整数
单纯地读入未知行和未知个数,那就只能在while循环里实现了。
每行的每个数放入数组里(大小加大点),或者每次动态申请内存(这样节省空间)来存放。
这样要结束的话需要有结束的标志。
一般都是设置两个个宏来定义一个数值,一个用来记录行数,一个用来记录列数,数组变量的大小就可以由这两个宏来确定了,方便初始化。
㈣ C语言中如何给一个数组输入一组总数未知的数
#include<stdio.h>
#include<ctype.h>
int main()
{
int a[1000];
char c;
int i=0;
int n=0;
while((c=getchar())!=' ')
{
if(isdigit(c))
{
ungetc(c,stdin);//将c送回输入流
scanf("%d",&a[n++]);
}
}
for(i=0;i<n;i++)
{
printf("%d",a<i>);
}
return 0;
}
(4)c语言未知数据怎么输入扩展阅读:
printf()函数的用法
1.printf()函数的调用格式为:printf("<格式化字符串>",<参量表>);
//__stdcall
int __cdecl printf(const char*p,...);
...可变参数
printf在打印浮点数,不论原来是双精度还是单精度,都变为双精度(8字节)
打印1字节(char)2字节(short)4字节(int)==>4字节,除了long long(8字节)
void main()
{
int a=10;
folat ft=12.25f;
printf("%d%d ",a,ft);
}
%d格式控制符--不具有强转能力
A格式化字符串包括两部分内容:
一部分是正常字符,这些字符将按原样输出;
另一部分是格式化规定字符,以"%"开始,后跟一个或几个规定字符,用来确定输出内容格式。
1.d/i有符号十进制形式输出(正数不输出符号)
2.u无符号十进制形式输出
3.o无符号八进制形式输出(不输出前缀0)
4.x无符号十六进制形式输出(不输出前缀Ox),并以小写abcdef表示。
5.X无符号十六进制形式输出(不输出前缀Ox),并以大写ABCDEF表示。
6.c输出单个字符
7.s输出字符串
8.f以小数形式输出单、双精度实数
9.E/e用科学计数法表示浮点数
10.G/g以%f或%e中较短的输出宽度输出单、双精度实数
+++++++++
void main()
{
long long x=0x12345678901357;
printf("%x ",x);//=>78 90 13 57
printf("%lx ",x);//=>78 90 13 57
printf("%llx ",x);//=>12345678901357
}
B参量表
需要输出的一系列参数,其个数必须与格式化字符串所说明的输出参数个数一样多,各参数之间用","分开,且顺序一一对应
例题:
void main()
{
char a=128;
printf("%d ",a);//=>-128
printf("%x ",a);//=>ffff ff80
}
当printf调用,a给可变参数,自然而然扩展为4字节,a是有符号数,扩展的时候加符号位
1111 1111 1111 1111 1111 1000 0000=>ffff ff80
unsigned char a=128;
printf("%x ",a);==>80
㈤ C语言中如何控制未知长度的数组的输入
方法一:每输入一次,都询问是否继续输入
while(1)
{
scanf("%d",&a[i]);
printf("是否继续?(Y/N)");
c=getchar();
if(c=='Y'||c=='y')continue;
else break;
}
这种方法比较笨
方法二:规定输入的范围,例如要输入的是正整数,那么可以检测输入的是否合法,如果输入了负数就结束循环
while(scanf("%d",&a[i])==1&&a[i]>0)
{
continue;
}
方法很多,依据不用程序的不同任务可以有不同的办法。
㈥ c++,输入一个未知大小的数组怎么做 要求有回答范例。。。
如下参考:
1.首先,定义一个常量大小来控制数组的大小。
㈦ C语言中逐个获取输入的未知个数数据的常用方法是什么
1 折中方法,可以在输入前打印规则,比如说“每个数据用逗号分隔”、“每个数据用?分隔”;
2 如果一定要用空格的话,可以用gets函数来接收输入的字符串
格式:gets(字符数组名);功能:gets函数用于将输入的字符串内容存放到指定的字符数组中,输入结尾的换行符'\n'被换成'\0'存储在该数组中。
举例说明如下:
char str[20]; // 定义一个字符数组,大小为20个字节
gets(str); // 将用户输入的字符串(可以包含空格)存储到字符数组str中,以回车结束输入printf("%s", str); // 输出用户输入的字符串(包含空格)
注:使用gets函数时,需将头文件#include<stdio.h>包含到源文件中。
然后遍历str数组,遇到空格就分词
㈧ c语言 中输入一组数量未知数据怎么表示
你好!!
可以按照下面的方法实现:
chara[100];
scanf("%s",&a);
或
chara[100];
gets(a);
㈨ C语言怎么输入未知元素个数的数集
数组下标是从0开始的,如果要输入16个元素就应该开a[
16
]
int
a[
16
],
i;
for
(
i
=
0;
i
<
16;
i++
)
scanf("%d",
&a[
i
]);
每敲一个元素按一次回车或者空一个格都可以。