学习小发现:
今天练习了C语言的几个题目,其中有一个关于求和的问题,要求实现输入多组数据a[]、b[],数据数未知,根据输入者输入的数据数而定,然后实现输出未知组数的数据和。此问题的核心问题就是怎样实现输入多组数据(不定个数)。
方法一:运用C语言中的EOF(用C语言处理多组数据,一把用ctrl+z结束,ctrl+z就是eof)
while(scanf("%d%d",&a[i],&b[i++])!=EOF);
方法二:
#includde<stdio.h>
int main()
{
int a[100];//存储数据
int b[100];//存储数据
int number=0;//计数器
char c;//判断是否输入完毕
int i=0;
c=getchar();//接收数据
while(1)
{
ungetc(c,stdin);//将一个字符退回到输入流中
scanf("%d",&a[number]);
scanf("%d",&b[number++]);
c=getchar();
if(c=='\n')
{
c=getchar();
if(c=='\n')
break;
}
}
for(i;i<number;i++)
printf("%d",a[i]+b[i]);
printf("\n");
return 0;
}
这里主要介绍一下ungetc这个函数,今天最大的收获就是认识了解到了ungetc这个函数。
用法:(可直接调用)
作用:将一个字符退回到输入流中、
格式:int ungetc(char c,FILE *stream);c 要写入的字符,stream文件流指针。调用举例ungetc(c,stdin);、
输出参数:字符c——操作成功,EOF——操作失败