c语言中“%d”和“%d\n”有什么区别?请看详情

我写的一个小递归函数:
#include <stdio.h>
int main ()
{
int jie(int n);
int n;
int sum;
scanf("%d\n",&n);
sum=jie(n);
printf("sum=%d",sum);
for (int i=0;i<10;i++)
getchar();
return 0;

}
int jie(int n)
{
int s;
if (n==1)
s=1;
else
s=jie(n-1)*n;
return s;

}
如果是上面的那样的话,输入一个整数后,不能一下子出现结果,
要继续输入一个数之后结果才会显现,但是如果去掉那个“%d\n”中的“\n”后,结果就能一下子出来,请问这是为什么呢???
我用的是DEV c++

对于上面你的追加提问,关于scanf函数,你再里面填的是上面,在输入的时候就要严格按照这个格式输入,比如你写的scanf("%d%d%d",&a,&b,&c);这句你最后按一个回车,代表输入结束 ,这时就会出结果,但是如果你这样写scanf("%d\n%d\n%d\n",&a,&b,&c);就得输入一个数按一下回车,当输入第三个数之后,你按了回车了,还要按一下回车,代表输入结束,才会出结果,不建议这样写,如果每个输入都占一行的话,那你可以将最后一个\n去掉,变成这样
scanf("%d\n%d\n%d",&a,&b,&c);这样就可以在输入第三个回车时出结果,希望你能懂
温馨提示:内容为网友见解,仅供参考
第1个回答  2012-04-16
你说的是scanf函数里面的%d\n是吧?你的输入格式要严格地按照scanf函数里面格式来,你的scanf("%d\n",&n)要求的是输入一个整数和一个回车才算输入完成,所以还要再来一个回车表示输入结束,不一定是要继续再输入一个数追问

恩,是啊,
如果是下面的代码:
#include
int main ()
{
int a,b,c;
scanf("%d%d%d",&a,&b,&c);
printf ("%d\n%d\n%d\n",a,b,c);
for(;1;)
getchar();
return 0;

}
就是最后直接按回车键就会输出结果,但是如果是下面的:

scanf("%d\n%d\n%d\n",&a,&b,&c);
最后就一定要加一个数才会输出结果啊,只是按回车键没反应的啊,就是光标移到下一行而已。

C语言中%d和%d\\n有什么区别啊?
只有一个区别,在于换行符【\\n】,即【%d】输出后不换行,而【%d\\n】会换行。概念解析:1、%d---输出一个整型数。2、\\n--- 回车换行。一、无换行符演示如下:1、【%d】代码:2、执行输出:二、换行符演示如下:1、【%d\\n】代码:2、执行输出:...

C语言中%d和%d\\n有什么区别啊?
在C语言中,两个看似相似的格式符%d和%d\\n,其实只有细微的区别。这个区别在于对换行的处理方式。%d表示输出一个整型数,而%d\\n则在输出整数后自动插入一个换行符。让我们通过实例来直观理解。首先,%d的使用示例如下:1、%d代码:2、执行输出:当你使用%d时,输出的数字会直接跟随在前一个字符后面,...

C语言中%d和%d\\n有什么区别啊?拜托各位了 3Q
C语言中%d的意思是一种转意字符,意思是输出的数是整数。%d\\n 在输出整数后,还要在后面输出一个换行

c语言中“%i=d\\n”是什么意思?“%d\\n”和“%d”有区别吗?
一、意义不同:c%c\\n表示输出两个字符数据,d%d\\n表示输出两个十进制整型数据。二、使用不同:\\n是换行符的意思,表示多输出一个空行。在前面就是说在数字前面输出一个空行,在后面同理。三、作用不同:c语言中, %d\\n 是printf()函数的格式控制,%d是printf()函数的格式声明,表示结果只能输出...

c语言里%d,为什么有的是%d\/n,区别是什么?
d %f是打印变量的类型。d是整数类型。用来输出十进制整数,按整型数据的实际长度输出。f是浮点类型(就是含小数点的,默认为6位)\\n是表示回车,即,转到下一行。它的意义多表现在有多个printf的时候,为了不混淆,一般每个printf的内容占一行。C语言中对于不同类型的数据用不同的格式字符,%d %f是...

C语言中输出语句中的%d和\\n是什么意思
d是十进制输出 \\n是输出后换行 如:int iCount = 10;printf("iCount = %d. \\n 你好啊!", iCount );结果:iCount = 10 你好啊!

c语言中“%d”和“%d\\n”有什么区别?请看详情
对于上面你的追加提问,关于scanf函数,你再里面填的是上面,在输入的时候就要严格按照这个格式输入,比如你写的scanf("%d%d%d",&a,&b,&c);这句你最后按一个回车,代表输入结束 ,这时就会出结果,但是如果你这样写scanf("%d\\n%d\\n%d\\n",&a,&b,&c);就得输入一个数按一下回车,当输入第...

C语言中,%d%c%d与%d,%c,%d\\n有什么区别啊?为什么一个有逗号,一个没有...
d%c%d :输出时连续输出,中间无间隔符,如:5a7 d,%c,%d :输出时中间有间隔符,如:5,a,7 很简单,仅此而已

C语言中输出语句中的%d和\\n是什么意思
d 十进制有符号整数 可以在"%"和字母之间插进数字表示最大场宽。例如:3d 表示输出3位整型数,不够3位右对齐。如果字符串的长度、或整型数位数超过说明的场宽,将按其实际长度输出。但对浮点数,若整数部分位数超过了说明的整数位宽度,将按实际整数位输出;若小数部分位数超过了说明的小数位宽度,则按...

C语言printf("%%d,%%d\\n",a,b);中两个%%是什么意思?怎么输出?
是转义符。例如\/,两个\/\/代表一个\/,同理所以两个%% 代表一个 所有的ASCII码都可以用“\\”加数字(一般是8进制数字)来表示。而C中定义了一些字母前加"\\"来表示常见的那些不能显示的ASCII字符,如\\0,\\t,\\n等,就称为转义字符,因为后面的字符,都不是它本来的ASCII字符意思了。

相似回答