#include <stdio.h>
int main(){
int a,b,c;
scanf("%d%d%d\n",&a,&b,&c);
printf("%d %d %d",a,b,c);
return 0;
}
看看我正在接受3个输入并打印3个输出......但是当我在scanf函数的末尾添加了一个新行时,我必须给4个输入来获得3个输出(我得到前3个作为输入)... scanf如何在这里工作? 在这种情况下:
#include <stdio.h>
int main(){
double n[2][5]; int i,j;
for (i=0;i<=1;i++){
for(j=0;j<=4;j++){
scanf("%lf\n",&n[i][j]);
printf("Class=%d Roll=%d Marks=%lf\n",i+6,j+1,n[i][j]);
}
}
return 0;
}
看看我必须提供11个输入才能获得10个输出......每次我输入一个输入时,我都会将之前的输入作为输出... scanf如何在这里工作?
答案 0 :(得分:1)
scanf格式的白色字符与输入中的白色字符序列匹配,直到非白色字符。
换行符是一个白色字符,这解释了程序的行为。这意味着如果您的scanf格式以换行符结束,则在最后一次解析输入后看到另一个非空白字符时,它才会完成。
答案 1 :(得分:0)
scanf
仅用于输入值,现在您需要的是将输出显示在新行上,基本上,您希望在屏幕上显示换行符,因此必须使用{{1 \n
中的}},因为要打印新行。关于为什么要输入四行,我不确定,语法说必须使用printf
和一个字母对于要接受的数据类型,我将详细阅读并取回。
谢谢。