C语言的while(scnaf("%d",&n)!=EOF)的用法

如题所述

第1个回答  2019-09-12
你好!
我电脑上上述程序执行时是都可以加的。可能你是输入EOF的时候不正确?输完一组数据之后,回车,再Ctrl+Z,再回车,接着输下一组数据,以此类推。程序就会分别输出每组的和(按行)。
我的回答你还满意吗~~
第2个回答  2020-04-22
我觉得你是不是把fscanf()和scanf()搞混了,看一下文件操作比较适合。EOF是文件操作里面的。
第3个回答  2020-03-19
scanf()
会一直等待键盘输入,
循环输入是停不下来的。
由于你的输入值都是一位数,我们可以用getchar();
输入,遇到
'\n'
知道行结束,计算总和。
#include
#include
int
main()
{
int
n,i,tmp,z[100]={0};
char
t;
scanf("%d",&n);
fflush(stdin);
//
这是清除输入缓冲区里的'\n',
以免下面统计行数时搞错
for(i=0;i
=
'0')
&&
(t
<=
'9'))
{
tmp
=
t
-
'0';
//
ASCII
值到数值
0,1,2...9
转换
z[i]+=tmp;
};
}
}
for(i=0;i
追问:
对于输入值都是一位数来说,你的程序写得很对,但现题目是要求是有可能是多位数啊
追答:
估计,你们的题目就是规定输入一位数.
多位数
比较麻烦:

gets
作为字符串读入一行.
for
(i=0;i
评论
0
0
加载更多

C语言的while(scnaf("%d",&n)!=EOF)的用法
scanf() 会一直等待键盘输入, 循环输入是停不下来的。由于你的输入值都是一位数,我们可以用getchar(); 输入,遇到 '\\n' 知道行结束,计算总和。include <stdio.h> include<stdlib.h> int main(){ int n,i,tmp,z[100]={0};char t;scanf("%d",&n);fflush(stdin); \/\/ 这是清除输...

C语言的while(scnaf("%d",&n)!=EOF)的用法
你好!我电脑上上述程序执行时是都可以加的。可能你是输入EOF的时候不正确?输完一组数据之后,回车,再Ctrl+Z,再回车,接着输下一组数据,以此类推。程序就会分别输出每组的和(按行)。我的回答你还满意吗~~

c语言中可以用while(scnaf("%d%d",&a,&b)!=EOF){}来实现多行输入,java...
import java.util.Scanner;public class YuGiOh{public static void main ( String[] args ){Scanner scanner = new Scanner (System.in);try{while (scanner.hasNextDouble ()){double a = scanner.nextDouble ();System.out.println (a);}}catch (Exception e){}}} ...

怎么用C语言通过两个变量一次输出两组和的值?
1.用for循环 for(int i=1;i《=2;++i){scanf(。。。)printf(“%d”,a+b);} 2.利用scanf的返回值进行不知道几组的相加 while(scnaf(。。)!=EOF)printf(“%d ”,a+b);

c语言:输入一个正整数,统计该整数中数字8的个数.如果输入的数是负数输出...
include <stdio.h>void main(){ int n,count=0; printf("请输入一个自然数:\\n"); scnaf("%d",&n); if(n<0) printf("er\\n"); else { while(n) { if(n%10==8) count++; n=n\/10; } printf("共有%d个8\\n",count); }} 程...

C语言怎样实现只允许输入数字,不允许输入符号、字母等
假设变量时num,则when(scanf("%d",&num)==1 && num>9)scanf("%d",&num)==1意思是输入一个数,scnaf才返回数字1,其他字符则是错的, && 在两者都成立时才成立,num>9解决了输入时两位或两位以上的的数字,当符合这些条件时,才允许往下进行。

数值转换的程序问题(c语言)
"%d",&n)中,scnaf()返回的是接受字符的个数,所以这里a=1;其实直接scanf("%d",&n)就可以了 (2)调用malloc函数时一定要free()掉,不然就会内存泄露!你也可以用数组定义一个全局变量.你把printf("the outcome is :conversion(a)");改成printf("the outcome is :conversion(n)"); 试试把 ...

c语言中的scanf 函数的用法
scanf 函数最主要的用法是:scanf("输入控制符", 输入参数);功能:将从键盘输入的字符转化为“输入控制符”所规定格式的数据,然后存入以输入参数的值为地址的变量中。用scanf()函数以%s格式读入的数据不能含有空白符时,所有空白符都被当做数据结束的标志。所以题中函数输出的值只有空格前面的部分。如...

编程题:输入任意一个4位数整数,将该数反序输出。求解
c语言 include <stdio.h>#include <stdlib.h>int main(int argc, char *argv[]) { int a,s,d,f,g,h,j,k,l; printf("请输入四位整数"); scanf("%d",&a); s=a\/1000; d=a%1000; f=d\/100; g=d%100; h=g\/10; j=g%10; k=j\/1; printf("颠倒后的数字为%d%d%d",k,...

C语言 输入一个数字n,求1 一直到n的所有数字之间的和
include <stdio.h> void main(){ int n,i,m=0;printf("请输入一个数字:");scanf("%d",&n);for(i=1;i<=n;i++){ m=m+i;} printf("1开始到n的所有整数的和是:%d\\n",m);}

相似回答
大家正在搜