C语言,怎么死循环了呢?

//数制转换
#include <stdio.h>
int main()
{
int pre_num , convert_number , n = 1 ;
while( n )
{
printf( "请输入一个十进制数字:\n" ) ;
scanf( "%d" , &pre_num ) ;
if ( pre_num < 0 ) //如果输入数字非法,系统提示错误,并且提示重新输入,while循环
printf ( "输入错误,按Enter键重新输入。\n" ) ;
else
break ; //输入正确,退出循环
}
while ( n )
{
printf( "请输入需要转换的进制:\n" ) ;
scanf( "&d" , &convert_number ) ;
if ( convert_number !=2 || convert_number !=8 || convert_number !=16 )
//如果输入的转换进制数不是2、8、16,系统提示错误,并且提示重新输入,while循环
printf ( "输入错误,按Enter键重新输入。\n" ) ;
else
break ;
}
//打印用户输入的两个数,并使用户确认
printf( "将要转换的数字是:%d\n" , pre_num ) ;
printf( "转换的进制数是:%d\n" , convert_number ) ;
return 0 ;
}

以上只是开头一部分,重要的组成部分还没有编。

1. scanf( "&d" , &convert_number ) ; 注意是%d
2. if ( convert_number !=2 || convert_number !=8 || convert_number !=16 )
这个你就是输入2,8,16都会不停地执行,不应该用||,应该用&&
温馨提示:内容为网友见解,仅供参考
第1个回答  2006-06-21
if ( convert_number !=2 || convert_number !=8 || convert_number !=16 )

这行,应该是用 && 而不是 ||。
第2个回答  2006-06-21
第一个循环不ELSE也要BREAK,不然就一直接数据吧

c语言,为何这是死循环?
while(1)表示无条件执行循环(因为1表示真),而它的循环体是后面跟着的那个语句:也就是printf("%d",k-=3);所以程序会一直运行printf("%d",k-=3); 永远出不来。这条语句就相当于 while(1){ printf("%d",k-=3);} 加上大括号里面可以加多个语句作为循环体,如果没加大括号就是while后面的...

C语言怎么陷入死循环
永远等于 1,所以就死循环。c 语言不像 vb,if(j=1),这里,c++编译程序把 j=1 当成是赋值语句,这里应该写成if(j == 1),别忘了,c 的等于是两个等号。

C语言死循环
1、if(k==0) continue;应该break而不是continue 2、while后边少了一个{ i++后也少了一个} 使得循环内i得不到变化,所以死循环。3、不应该那么打印。正确代码如下:include<stdio.h> void main(){ int i,j,k;i=1;while(i<=100){ for(j=2;j...

C语言:为什么下面的程序段是死循环?手机党,原谅我没有排版
注意while里面的表达式:1<=x<=2,并不是判断x在区间[1,2]内,而是:首先计算1<=x的值,结果是真或者假,就是1或者0。然后判断这个值与2的大小关系,显然不论是1还是0,都小于等于2,所以永远是真的。从而使死循环。

有什么问题 死循环了 C语言
\/\/while (str[i]!=0) \/\/ 死循环是这里导致的,这里只判断了第一个数不为零,然后进入了死循环 逻辑也有问题,帮你修正如下,仔细和你的对比下,并调试通过。望采纳!!!include<stdio.h> void main(){ int m,n,t,count=0,i;int str[100]={'0'};scanf("%d%d",&m,&n); \/\/ ...

C语言到#结束,但为什么我的程序会陷入死循环啊?
因为是在while前输入的数据,循环过程中这个数据一直存在。把scanf("%f%c%f",&a,&b,&c); while(b!='#'){改成while(scanf("%f %c%f",&a,&b,&c)==3 && b!='#'){。把所有的continue;删除。

c语言中一般运行后停止工作有哪些情况
只要编译通过,一般情况下C语言程序停止工作,多为输入输出格式不对,或计算陷入死循环。1、输入输出格式不对。最常见的就是&符号,该有的没有,不该有的打了&符号。例如:int n;scanf("%d",n);n前少打了&符号。编译能通过,执行时就会出现停止工作的情况。2、个别计算陷入死循环的情况,例如:i...

C语言中程序如:for( ; ;);为什么是死循环?
循环控制、循环体;循环控制部分的循环结束条件如果永远成立,将会导致一直循环,俗称”死循环“;上面的程序:最后的分号,表示循环体为空,是空循环;括号中的两个分号之间是放循环结束条件的,这里也是空,等价于循环条件永远成立。for( ; ;);的循环条件永远成立,所以导致死循环。

C语言的问题 为什么这成了死循环?
scanf()函数接收输入数据时,遇以下情况结束一个数据的输入:(不是结束该scanf函数,scanf函数仅在每一个数据域均有数据,并按回车后结束)。① 遇空格、“回车”、“跳格”键。② 遇宽度结束。③ 遇非法输入。所以你输入非整型数据时,都会无限循环。

c语言 为什么for(;;)是死循环?求大神解释
C语言中for循环包含三个部分:初始化、条件、递增 for (INITIALIZATION; CONDITION; AFTERTHOUGHT)初始化是宣告(或者赋值)任何需要的变数的动作。如果你要使用多个变数,则变数的种类要一致。条件的部分则是检查是否离开这个循环,也就是让程式码往下执行。如果条件判断为假,则离开循环。递增在每跑一次循环...

相似回答
大家正在搜