求教:关于scanf的使用

来源:百度知道 编辑:UC知道 时间:2024/09/21 03:22:15
5
6 7 6 4 6

第-行"5"表示第二行有5个任意数字
我可以这样使用:
scanf("%d",num);
scanf("%d%d%d%d",num1,mum2,num3,num4,num5);

在不知道第一行为什么数值的情况下,如何使用"scanf"对第二行进行输入?
输入一共只有两行,我想知道怎么扫出第二行的所有数值?

输入数据间有空白
6 7 6 4 6
则格式有空白
scanf("%d %d %d %d %d",&num1,&mum2,&num3,&num4,&num5);

输入数据间没有空白
67646
则格式没有空白,因为是1位数,用%1d
scanf("%1d%1d%1d%1d",&num1,&mum2,&num3,&num4,&num5);

第二行数字可变
int num, v,i;
int a[1000];
scanf("%d",&num);

for (i=0;i<num;i++)
{
scanf("%d\n",&v); // 一个新行一个数较好
a[i] = v;
}

简单一点可以这样

int num,n[100];
scanf("%d",num);
for(i=0;i<num;i++)
scanf("%d",n[i]);

但要注意,输入的数不能超过数组的最大容量100,否则会造成溢出

可以把输入放到一个无限循环当中,如:
while(1)
{//输入
}
在此之前要分配好足够的内存空间。
同时输入的时候num1这些前面加&

C 可以写成
#include<stdio.h>
int main(void)
{
int num;
while(1) //扫出第二行数值?
{
while(scanf("%d",&num)!=EOF)
printf("%d\n",num);
}
printf("Hello,world\n");
return 0;