本文目录
- c语言的数组中能不能包含未知数
- 急求!!c语言中向数组中放不确定的数怎么办,比如说我定义了整形数组a[100],有时向其中输入5个,10个,
- 怎样用c语言生成一个数组都是未知数
- C语言中如何给一个数组输入一组总数未知的数
- C语言中如何将未知个数的数存放在一个数组中
- 我做C语言算法题目时遇到了个问题,用数组实现输入未知数目的数,输入结束进行输出
c语言的数组中能不能包含未知数
哎呀,你先随便定义一个不就行了吗?算出来的时候再覆盖掉不就好了吗?你一开始就定义int a;for(int i = 0; i 《 6; i++){ for(int j = 0; j 《 6; j++) { a = fun(****); }}你没有定义一个数不代表这个位置不能存在一个随机数呀。像一般的电脑里面没有被初始化的静态数组里面都是有数字的,但是你想用的时候第一步就是对这个数组初始化。因为你认为原来的数没有意义。你现在也应该这么想
急求!!c语言中向数组中放不确定的数怎么办,比如说我定义了整形数组a[100],有时向其中输入5个,10个,
可以用动态数组int* a;要用的时候再分配空间a = new int;如果要重新分配空间,可以先delete,再重新分配delete a;a = new int;
怎样用c语言生成一个数组都是未知数
@现在我遇到这样一个问题,一个6*6的矩阵,里面每个数都是未知数,都需要通过另外的公式计算得到,那这个数组该怎么定义呢?是不是在定义这个数组之前都要把这些未知数都通过公式和scanf定义了?回答:先根据36个数的类型(如int),定义inta={0},这个语句的意思是:36个元素都设为0.在后来的计算中,将开始的元素替换掉就可以了,如a=100;(将最后一个元素设为100)
C语言中如何给一个数组输入一组总数未知的数
#include《stdio.h》
#include《ctype.h》
int main()
{
int a;
char c;
int i=0;
int n=0;
while((c=getchar())!=’\n’)
{
if(isdigit(c))
{
ungetc(c,stdin);//将c送回输入流
scanf("%d",&a);
}
}
for(i=0;i《n;i++)
{
printf("%d",a《i》);
}
return 0;
}
扩展资料:
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\n",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\n",x);//=》78 90 13 57
printf("%lx\n",x);//=》78 90 13 57
printf("%llx\n",x);//=》12345678901357
}
B参量表
需要输出的一系列参数,其个数必须与格式化字符串所说明的输出参数个数一样多,各参数之间用","分开,且顺序一一对应
例题:
void main()
{
char a=128;
printf("%d\n",a);//=》-128
printf("%x\n",a);//=》ffff ff80
}
当printf调用,a给可变参数,自然而然扩展为4字节,a是有符号数,扩展的时候加符号位
1111 1111 1111 1111 1111 1000 0000=》ffff ff80
unsigned char a=128;
printf("%x\n",a);==》80
C语言中如何将未知个数的数存放在一个数组中
在C语言中数组的定义必须指明维数,即使没有指明维数,也必须进行初始化,编译器通过初始化列表中的元素个数来确定数组的维数,比如下面的代码:
int a = {1,2,3};
虽然没有指明数组的维数,但是编译知道数组a的维数是3(只有三个元素)。
要实现未知个数的元素存储于数组中,可以使用malloc()和free()来进行动态内存分配 。下面是一个使用动态内存的示例:
#include 《stdio.h》#include 《malloc.h》#include 《stdlib.h》#include 《string.h》int main(){int size;printf("输入建立元素的个数:");scanf("%d",&size);int *p = (int *)malloc(sizeof(int) * size);if (p == 0) {printf("不能分配内存\n");return 0;}//初始化内存memset(p, 0x00, sizeof(int) * size);//释放内存free(p);return 0;}
我做C语言算法题目时遇到了个问题,用数组实现输入未知数目的数,输入结束进行输出
如果你知道你输入的最大数目,就如楼上所说的方法最简单。如果连这个也无法确定,那就先malloc一定大小的数组,输入时不断对已经输入的数据计数,如果超过了该数组的大小,就realloc更大的内存(翻倍即可),这也是C++中vector的实现机制。实力代码:int size=128,i=0;int* arr=(int*)malloc(size*sizeof(int));while(输入未结束){ 输入a; ++i; if(i》=size){ size*=2; arr=(int*)realloc(arr,size*sizeof(int)); }}