正文
c语言输入后没反应,c语言输入后没反应怎么回事
小程序:扫一扫查出行
【扫一扫了解最新限行尾号】
复制小程序
【扫一扫了解最新限行尾号】
复制小程序
为什么c语言中,如果在scanf括号中最后写上\n,程序运行时,输入后会...
等待输入\n,可是scanf把最后打入的\n当作接收命令而不赋给变量,所以要再输入一个数据再打回车才能向下走,而且输入的是上一次的数据,第二次打入的数据并未接收。所以这种写法是错误的,要坚决避免。
scanf( ), scanf(\n)效果是相同的:表明scan函数会读取空格、TAB、回车直到第一个非空字符为止。详细可以参见scanf()函数format字符串的详细解释。
在c语言中,scanf(%d%*c, &n);中%d表示读整数,%*c表示忽略掉一个字符型的输入项,&n表示对象n在内存中的地址。
呵呵,你混淆了printf()和scanf()了吧?scanf是用来输入的,当你按回车键之后它就结束输入,命令行里面也就换行了。scanf(%d,&l)就行了。
c语言编程执行后输入数据回车后为什么无反应
就说明光标在等着你的输入……所以可能是你输入的数据不满足自己写的程序的规范 比如,程序写 scanf(“%d”,&a);scanf(“%d”,&b);假设你的a 要分别赋值1 2 这时 你的输入应该是1空格或者换行2,而非12。
题主代码中i = i++有问题,i值不会自增,循环不会结束。会先使用i值,即将1赋值给i,所以在while循环中i的值会一直是1,循环无法停止,所以回车后不会结束。
逻辑错误。while(x=0),输入的x为非负整数时,一直执行循环体内语句s=s+x;k++;陷入死循环。
float不可能精确=0。假设平方根小于原数是错误的,(0,1)内的平方根比原数大,0,1的平方根等于原数。另外,你的程序改写了a的值,a已经不是原数。
scanf(%d\n,t);应该为 scanf(%d\n,&t);原来写错了,所以输入的数并没有送入变量t,而是不知道送到哪里了。至于变量t的值是保留的内存中原有值,不一定是多少。如果恰好是0,那么就是您说的现象。
代码发上来,执行环境说清楚,不然没法分析和解决。编程环境尽量用最新的,如果最新的版本都不能解决的问题,换回旧的,除了会发生更多的问题之外,能不能在当前系统上跑起来都是问题。
为什么C语言,我输一个数字进算法,结果没反应?看看哪错了
1、scanf(%d\n,&x); 把这里面的\n去掉。scanf的双引号里面是格式输入,你必须按照规定的样子输入,这样你每次输入回车就只是被录入输入的数据中,而不能退出输入。
2、中间三条语句:输入语句、V的赋值语句、输出语句全错。就是程序最核心的三句全错。
3、whie(c!=0 || d!=0){...}是死循环,因为不可能有c和d同时为0的时候。求两数的最大公约数和最小公倍数是很简单的过程,这代码把关系搞得很复杂,即使没有错误也是不可取的。
4、示的整数范围有限,这是不可能的。为了解决这个问题,必须首先在数学上分析在100!结果值的末尾产生零的条件。不难 看出:一个整数若含有一个因子5必然会在求100!时产生一个零。
5、Eason是个非常迷信的人,他喜欢数字3和6,不喜欢4和7。如果一个数字的数码中没有4和7,而有3或者6的话,他就会喜欢这个数字。 比如,他会喜欢13,36,但是不会喜欢14,34。但对于28这种的,他就无所谓喜欢还是不喜欢。
6、首先建议你搞清楚C和C++的区别 其次建议你搞清楚整型和字符的区别 你的b是字符串数组,而k却是整型,输出也是整型。
为什么我这个C语言程序运行后输入数字程序无反应
中间三条语句:输入语句、V的赋值语句、输出语句全错。就是程序最核心的三句全错。
如果输入的数字大于10,就会导致“死循环”,因为程序中的m=i/10,i的值不变,m 的值就也不会变。
代码发上来,执行环境说清楚,不然没法分析和解决。编程环境尽量用最新的,如果最新的版本都不能解决的问题,换回旧的,除了会发生更多的问题之外,能不能在当前系统上跑起来都是问题。
scanf的双引号里面是格式输入,你必须按照规定的样子输入,这样你每次输入回车就只是被录入输入的数据中,而不能退出输入。还有你声明的是double类数据,格式化输入输出应该为%lf,不是%d,不然输出结果都转换成整型了。
另外scanf输入默认是空格分隔,所以字符串和字符串之间要有空格,每个数字之间也要空格。
c语言问题:图中这个程序咋过运行不了,输入数据后没有反应
scanf()函数的要求是输入的格式与格式控制字符串的要求保持一致,既然格式控制字符串有\n,那么在输入时也必须对应的有一次回车,所以这里需要两次回车。scanf()一般情况下不应该出现\n,除非知道这样用的后果。
亲,直接输入一个串数字,表示的变量是第一个变量哦,相当于第一个变量接收的值是123,而后边的两个变量还没有值,所以才提示你继续输入,而没有运行结果。
whie(c!=0 || d!=0){...}是死循环,因为不可能有c和d同时为0的时候。求两数的最大公约数和最小公倍数是很简单的过程,这代码把关系搞得很复杂,即使没有错误也是不可取的。
你的截图太不清楚了,但是首先一个错误是:主函数是 main,你写错了,而且按照标准应该是 int main,另外你的左边工程列表里显示有2 class,不只你是怎么组织源代码文件的。
if(j=0){ num[i][j]=n*num[i][j];} if(i=2)判断条件错了, 这是赋值。
等待输入\n,可是scanf把最后打入的\n当作接收命令而不赋给变量,所以要再输入一个数据再打回车才能向下走,而且输入的是上一次的数据,第二次打入的数据并未接收。所以这种写法是错误的,要坚决避免。
为什么c语言代码输入后无反应
1、没有反应的原因有很多种。比如错误输入,类型错误,代码逻辑错误。不同的情况应该分开分析。例如 scanf(%lf %lf\n,&x,&e);这样的语句在回车后就没有反应,必须输入\n后才会有反应。因为非输出控制符必须原样输入。
2、等待输入\n,可是scanf把最后打入的\n当作接收命令而不赋给变量,所以要再输入一个数据再打回车才能向下走,而且输入的是上一次的数据,第二次打入的数据并未接收。所以这种写法是错误的,要坚决避免。
3、中间三条语句:输入语句、V的赋值语句、输出语句全错。就是程序最核心的三句全错。
4、whie(c!=0 || d!=0){...}是死循环,因为不可能有c和d同时为0的时候。求两数的最大公约数和最小公倍数是很简单的过程,这代码把关系搞得很复杂,即使没有错误也是不可取的。
5、int a,c,e; scanf(%f%c%f%c%f,&a,&b,&c,&d,&e);改 scanf(%d %c %d %c %d,&a,&b,&c,&d,&e);若用整型, a/c 将是整除,没有小数部分,例如 8/9 = 0,是不是你想要的。
6、scanf(%d\n,&x); 把这里面的\n去掉。scanf的双引号里面是格式输入,你必须按照规定的样子输入,这样你每次输入回车就只是被录入输入的数据中,而不能退出输入。
关于c语言输入后没反应和c语言输入后没反应怎么回事的介绍到此就结束了,不知道你从中找到你需要的信息了吗 ?如果你还想了解更多这方面的信息,记得收藏关注本站。