c语言运行成功但没有输出
答:问题出现在这里:while(k<=1000){ if(k%2==0) continue;sum=sum+k++;} 这里sum=sum+k++;先执行k++;这里k++是一个临时变量,离开了这句话以后,k的值依然是1,所以k的值永远都小于1000,这里您应该是求sum从1加到1000,那么如果是这样,要满足条件,这个循环必须改为:while(k<=1000){ i...
答:首先指出你写的一处错误,fun函数没有返回值。你要么定义为void,既然定义成int,就要返回数据。代码可能需要优化下...输入定义成字符串,不必用char数组,然后如果用while就用while,用for就用for,干嘛都一起用,大致可以这么写(自己定义下变量,另外没必要把变量定义到和main fun一个级别,这样不利于...
答:因为str2 之前第一位被赋值成结束符。include <stdio.h>#include <string.h>void fan(char s1[],char s2[]){int len,i,j=0;len=strlen(s1);for(i=len;i>=0;i--){printf(" -%d %d %c- \n",i,j,s1[i]);s2[j]=s1[i];j++;printf(" -- %s -- \n",s2);}s2[j]=...
答:这个是输入格式错误造成的,进行如下修改就可以了(见注释部分):include<stdio.h>int main (){ int i,N; float m,sum,x=1.0,y=2.0; scanf("%d",&N);//整数用%d for(i=1,sum=0;i<=N;i++) { sum=sum+y/x; m=y; y=x+y; x=m; } p...
答:五分照收,include <stdio.h>#include<math.h>double mycos (double x, double tol ){ double b,c; int N,a,d ,e,f, n; N=0;a=1;b=1;n=0;c=0;e=1; while(b>=tol){ a=N+1; d=N; while(d>=1){ a=a*d; d=d-1; } b = pow...
答:在我这是可以的 输出了YES 和NO 唯一和你的不同是我在if判断的时候加了类型转换 你试一下看行不行 if((char)psw[i] >= 'A' && (char)psw[i] <= 'Z')f1 = 1;if((char)psw[i] >= 'a' && (char)psw[i] <= 'z')f2 = 1;if((int)psw[i] >= '0' && (int)psw...
答:两个地方要改。一、scanf("%c",c) ;改成scanf("%c",&c) ;二、把n赋值的语句,从定义那里移动到gets语句之后。你str还没赋值,strlen怎么得到长度。include<stdio.h> include<string.h> int main(){ char str[101];char c;int n;int x = 0;int i;gets(str);n = strlen(str);//...
答:1) 要学会用更简洁得代码来实现,你可以看看底下得例子 2)编程要学会调试,不会调试就等于不会编程。调试就是单步检查关键变量得值看看对不对 3)你得逻辑中 g=m%10没问题 b=m/100没问题 s=m/10-b不等于十位数,你手工算一下就可以验证 正确得是s=m/10 - b*10;或者s=(m-b*100)/...
答:你没有清空键盘缓冲区,导致用户最后敲的回车被当做下一次的输入给读取了 include<stdio.h> void main(){ char c1,c2;scanf("%c",&c1);fflush(stdin);//在这里清空键盘缓冲区 while(c1<65||c1>90){ scanf("%c",&c1);fflush(stdin);//在这里清空键盘缓冲区 } c2=c1+32;printf("%c,...
答:你的程序在执行s=b*b-4*a*c之后,也不管s是正负,在x1,x2的表达式中直接对s开平方了。输入4 5 6时,s<0,又直接开方,程序到这里就无法继续执行了,当然出不来结果。
网友评论:
靳军13282816136:
为什么C语言程序运行输入后没有输出 -
51829段泼
: 1、原因可能是输入格式不对,要输入“浮点数”并用 “逗号” 分隔输入三个数两个逗号后还要额外多加一回车才开始后面的流程, 如果把 scanf("%f,%f,%f\n",&a,&b,&c); 改为 scanf("%f%f%f",&a,&b,&c); 就可以用空白符做分隔了 2、没有输出,不知道计算的结果那算法就没有意义了.输出不一定是要打印到屏幕上的,可以是下一个程序的输入,可以是一个文件、一段语音、一张图像,甚至是机器人的步行动作等等.
靳军13282816136:
c语言成功生成却无法输出结果 -
51829段泼
: 逻辑有问题i + 100-j*j==0, i + 268-k*k==0这个条件能不能实现
靳军13282816136:
c语言,运行后为什么没结果. -
51829段泼
: 可能情况有:1、是不是程序运行出现错误,如:死循环; 如果是死循环,程序将会进行持续运算,因此不会有退出结果.2、没有输出结果的函数,例如是不是没有printf函数?或者你可以把运行结果和代码发给我看看..
靳军13282816136:
c语言程序运行后没有输出结果只有光标向下移动了,如果再随便输入一些数字再Enter建就出结果,为什么? -
51829段泼
: 原因就是你的输入函数写的有问题,你的格式控制列表是这样写的:"a=%f,b=%f,c=%f\n",把后面的字符'\n'去掉就可以了,这样程序就能正常运行了.否则无论输入多少个'\n'(回车都不好使的),因为scanf函数输入的时候会自动忽略换行符,但是你的格式控制列表中却要求必须输入一个换行.所以会出现问题,至于为什么输入别的字符就可以了,应该是输入了其他字符后scanf函数就直接返回了(但不是返回出错).
靳军13282816136:
C语言程序运行无输出结果 -
51829段泼
: 如果你输入的成绩一直是正数,那while循环是死循环了,所以你要输入一个结束循环的值,输一个负值就会有输出了.
靳军13282816136:
C语言问题,这个程序为什么能运行,但是无法输出 -
51829段泼
: 因为你的程序算法时间复杂度太高,达到了O(n^2).而n又太大,达到50万,n的平方达到2500亿.程序一直在运行,循环还没结束,所以没有输出.耐心等1个小时,或者10个小时,或许就有了.建议:for(j=1; j for(j = 1; j*j 而a[t]=a[t]+j 改成 if (j*j = t) a[t] = a[t] + j; else a[t] = a[t] + j + t/j; 这样复杂度就是3500万,1秒左右就出答案.
靳军13282816136:
C语言编完后运行的时候什么也没有输出··· -
51829段泼
: if(k%2==0)continue;跳过了sum=sum+k++,这样k就不会往上加,一直停在k%2==0的那个数,k从1开始,1%2也是0,所以K一直停在1
靳军13282816136:
求助,写的c语言程序运行无输出结果 -
51829段泼
: c语言程序运行无输出结果?请检查: 1. 程序是否使用printf函数输出需要结果.2. 程序是否能够正常编译通过. 3. 程序是否能够正常运行. 4. 程序的逻辑是否正确.以上,基本能够排查出问题
靳军13282816136:
为什么我的C语言程序编译正确,但却没有运行结果 -
51829段泼
: 一般是程序的逻辑问题,不知道你使的是什么编译器,VC下后缀名要改成.c或.cpp才能有运行结果
靳军13282816136:
c语言中程序编完了运行但不出结果? -
51829段泼
: b=30-a;if((a*2+b*4)==60) a+b等于30,那么a*2+b*2就是60,a*2+b*4一定大于60,条件总不会满足.