求C语言大佬,组策略阻止了这个程序序循环不了,而且输入也有问题,哪里出错了?后面

求大佬解决下C语言问题,程序运行有错误怎么改啊_百度知道
求大佬解决下C语言问题,程序运行有错误怎么改啊
我有更好的答案
序中有全角字符、分号,肉眼几乎分辨不出,可能是你输入法切换的时候没有注意,切换了全角字符(shift+
空格 切换)在屏幕上看起来,全角字符和半角字符差别不大,例如逗号,但编译器不会弄错,所以就报错了
采纳率:97%
来自团队:
为您推荐:
其他类似问题
换一换
回答问题,赢新手礼包
个人、企业类
违法有害信息,请在下方选择后提交
色情、暴力
我们会通过消息、邮箱等方式尽快将举报结果通知您。求问个c语言问题 一个用字符串控制的循环 当输入的字符串为空时 循环结束 这样的程序应该怎么实现呢_百度知道
求问个c语言问题 一个用字符串控制的循环 当输入的字符串为空时 循环结束 这样的程序应该怎么实现呢
我有更好的答案
字符串第一个为0;/输入字符串到 str中
//别的程序部分}while(str[0]!=0);
/&#47char str[50];do{
gets(str);
为什么是0啊 不应该是\0吗
'\0'的ASCII码就是0
'\0'==0
二者是相等的
采纳率:64%
来自团队:
判断呗,if字符为空,break就行了
有问题直接把代码发给我把
空不如用空格吧
为您推荐:
其他类似问题
字符串的相关知识
换一换
回答问题,赢新手礼包
个人、企业类
违法有害信息,请在下方选择后提交
色情、暴力
我们会通过消息、邮箱等方式尽快将举报结果通知您。C语言求助,为什么输入某个值后以下程序就会陷入无限循环??_百度知道
C语言求助,为什么输入某个值后以下程序就会陷入无限循环??
编译没有问题,正常运行也没有问题,但是“Enter first number:
“打印出来后,如果接着输入一个非数字,程序并没有按我设定的 出现提示后允许重新输入,而是无限打印后面printf()里的提示语句,为什么??
#include&stdio.h&
char get_first(void);
...
我有更好的答案
我百科了一个scanf发现我错了。。他返回的值是他读入流的个数。 被你扫盲了。然后我调试了一下,没有发现问题,不知道你碰到的是什么问题。
就是当Enter first number打印后,如果输入一个非数字,比如字母,就会变成无限循环。本意是用户输错了就出现提示后然后允许重新输入
我才发现你的问题。。太粗心了,没细心看。你是输入非数字然后出现死循环是吧。因为scanf这个函数是读取键盘输入流是有缓冲区的。所以当他缓冲区里面有值的时候,它会默认你已经输入了值,不会让你重新输入值,所以加一句你后面的fflush(stdin);就可以了。加在while里面。
运行了一下,果然好了!!缓冲区什么的,果然还是了解不够啊,什么时候该刷新什么时候不需要总是分不清楚 &_&
采纳率:42%
printf(&***************while改成
就对了**********************
char get_first(void) {
ch=getchar()!='%f&
printf(&a'one is not an number.&#92. subtract\n&.1f%c%;
value=num1-num2;n&);
value=num1+num2; return 0.1f=%.2f\%;);
case 's' : n='-';,&num2),-1.78E8 or 3: &num2;
break!=&#39.\n&quot.5,s;);
case 'd' : n='&#47#include&stdio.h&gt.5;P
value=num1/n&); printf(&q. quit\n&if(scanf(&%f&;);a;char get_first(void);int main(void){ char ch,n; float num1,num2!=&#39,such as 2;
while(getchar().\n&B printf(&quot,d or q:\
switch(ch)
case 'a' : n='+';&&ch!='d')
printf(&Pn&); printf(&m. multiply
d.divide\
fflush(stdin);} printf(&&&ch!='s'&&ch,such as 2;n&);
printf(&q. quit\n&quot,-1.78E8 or 3: &quot. add
s,&num1)!=1)//
printf(&n&);
printf(&m. multiply
d.divide\Enter first number: &quot: &);
if(scanf(&
printf(&Enter the second number. subtract\Enter the operation of your choice:&#92,value);
printf(&quot!=1)
printf(&Please enter a number ,num1,n,num2;
case 'm' : n='*';a;n\
printf(&Enter the oper););). add
s,m;m'
while((ch=get_first())!='q') {
if(/***************while改成
就对了**********************{
printf(&';);
value=num1*num2;
break:\n&quot
呃。。。改成if的话continue不就直接跳到最开始的while((ch=get_first())!='q')去了?
这个判断它不是 数字 是要回到最开始的while((ch=get_first())!='q')这里啊
你的目的不就是判断 输入的是不是
我是想 如果输入的不是数字,就提示后再输入,直到是数字为止。这样改无限循环虽然没了,但提示后输入数字,比如3,就会出现Please enter a,s,m,d or q这句,跳到选择的时候了,而不是接着显示Enter the second number往下运行。这是一个简单的计算器程序
本回答被网友采纳
=1) 输入一个非数字好像是一个乱码 while(scanf(&%f&,具体原因不知道,试了下;%f&quot,就是这句会导致无限循环;,&num1),&num1)!=1) 应该是这句判断错误,(scanf(&quot
为什么?乱码?
你那个printf是在循环里面了,循环多少次就打印多少次的printf
可是下面有continue啊,正常的应该是打印一次就返回循环开头,如果下次输入的是数字就不会再打印这一句了
你把num1,num2都定义成double形,在c++的调试环境中这两个是有区别的
试了,还是老样子
我想知道你这个scanf(&%f&,&num1)!=1的意思是?
当scanf(&%f&,&num1)的返回值不为1
其他3条回答
为您推荐:
其他类似问题
无限循环的相关知识
换一换
回答问题,赢新手礼包
个人、企业类
违法有害信息,请在下方选择后提交
色情、暴力
我们会通过消息、邮箱等方式尽快将举报结果通知您。C语言 从键盘上输入十个数,输出其中最大数与最小数。求大佬帮忙看一下哪里出错了为什么结果不对?_百度知道
C语言 从键盘上输入十个数,输出其中最大数与最小数。求大佬帮忙看一下哪里出错了为什么结果不对?
我有更好的答案
nt i,maxN,num[i]);}maxNum=num[0];最大值;minNum=0;for(i=1;i&10;i++){if(maxNum&num[i]){if(minNum&maxNum) {minNum=maxN}maxNum=num[i];}else{if(minNum&num[i]) {minNum=num[i];}}}printf(&quot:%d
%d&, maxNum,minNint num[10];for(i=0;i&10;i++){scanf(&%d&quot
采纳率:85%
来自团队:
min=a[0]; for(i=0; } max=a[0];}
if (min&a[i]){
min=a[i];}
printf(&最大值为%d\n最小值为%d&,max#include&stdio.h&#define N 10int main( ){ int i,min, int a[N]; for(i=0;i&N;i++){
scanf(&i&N;i++){
if (max&a[i]){
max=a[i];,&a[i]);%d&quot
max=amin=a改成这样。。
为您推荐:
其他类似问题
换一换
回答问题,赢新手礼包
个人、企业类
违法有害信息,请在下方选择后提交
色情、暴力
我们会通过消息、邮箱等方式尽快将举报结果通知您。如何用C语言打印出三角星号塔_百度经验
&&&&&&&&&电脑软件如何用C语言打印出三角星号塔?听语音123456
百度经验:jingyan.baidu.com用C语言打印三角形的星号塔,可以说是在C语言学习中是十分经典的一个题目,但对于新手来说这个程序看起来不长,但有点不好理解,下来我会分部说说都代表啥,为啥程序这样就能打印出来一个三角塔。百度经验:jingyan.baidu.comCodeBlocks百度经验:jingyan.baidu.com1我用的CodeBlocks来进行演示。2打开软件输入程序,运行,可得到三角塔。(程序我会发在最后一步)。3下来我说一下内部程序每一步都是什么作用。(外部环境程序就不说了,基础)。4创建所需变量,i &j &k &space,特别注意space,之所以给它复制空格,因为三角塔其实是一个左半部分为一个空格组成的半个倒三角形(如图标记)。5在接下来这个for循环嵌套中,可以发现 &i &j &各控制一个变量,如果你自己在纸上一个一个写出来每次循环的话,就会发现,i &在控制横行,而 &j &在控制每一列,因为内部for j&=i &,所以可以看出,每横行随着 &i &一次次的增大而打印的空格越来越少(这个嵌套就是打印上面说的半个空格倒三角形,)。&6而如图这个循环就是在每横行空格打印完后补上需要的‘ * ’。7上面所说的打印空格的规律是:第1横行,打印3个空格。第2横行,打印2个空格。第3横行,打印1个空格。第4横行,打印0个空格。8而在后面补上的信号规律则是:第1横行,补上1个星号。第2横行,补上3个星号。第3横行,补上5个星号。第4横行,补上7个星号。而这个需要自己在输入程序之前发现每行补上的数目与每行的关系,即可列出程序。,上面的空格也是,不过相比之下比这个简单,不用验算就看得出来规律。9完整程序如下:#include &stdio.h&#include &stdlib.h&main(){&int i,j,k;&char space=' ';&for(i=1;i&=4;i++)&{& & &for(j=3;j&=i;j--)& & &{& & & & &printf(&%c&,space);& & &}& & &for(k=1;k&=(2*i-1);k=k+1)& & &{& & & & &printf(&*&);& & &}& & &printf(&\n&);&}}END百度经验:jingyan.baidu.comCodeBlocks程序如有需要,可以私信我。如果对您有用,麻烦投票和有得,谢谢。经验内容仅供参考,如果您需解决具体问题(尤其法律、医学等领域),建议您详细咨询相关领域专业人士。作者声明:本篇经验系本人依照真实经历原创,未经许可,谢绝转载。投票(1)已投票(1)有得(0)我有疑问(0)◆◆说说为什么给这篇经验投票吧!我为什么投票...你还可以输入500字◆◆只有签约作者及以上等级才可发有得&你还可以输入1000字◆◆如对这篇经验有疑问,可反馈给作者,经验作者会尽力为您解决!你还可以输入500字相关经验401540热门杂志第1期你不知道的iPad技巧3722次分享第1期win7电脑那些事6551次分享第2期新人玩转百度经验1375次分享第1期Win8.1实用小技巧2631次分享第1期小白装大神1874次分享◆请扫描分享到朋友圈

我要回帖

更多关于 始终用这个程序打开 的文章

 

随机推荐