c语言为啥老是算出一堆0
答:估计是文件打开失败了 所以文件指针为空
答:注意你的输入格式: scanf("%d%d%c",&x,&y,&ch);你要求,输入符号时,符号与前面数字之间不能有空格。例如: 输入 12 3+ 例如: 输入 12 3/ 另外,考虑程序的除法运算,或带小数点的数的运算,你可以改用浮点数float x,y,z; 格式用 scanf("%f %f %c",&x,&y,&ch); 且在...
答:你的代码算出来应该是2^36, 这个值肯定是超出int的值域了,而且低位为0,因些输出为0。正确实的计算应该是 m = 0;for ( j = 8; j >= 1; j--){ m = m * 2 + 1;}
答://定义一个函数判断是否为回文数 { int a[50],i=-1,flag=1,j=0;while(n)//只要n/10不为0就继续 { a[++i]=n%10;//依次取余,并累加i n/=10;printf("%d\n",a[i]);//同时n累除]} for(j=0;j<(i+1)/2;j++){ if(a[j]!=a[i-j])//对称部位若不相等 { printf("...
答:有一处错误,float money=10000;背后是分号 改过来就有运行结果了
答:因为 k=a+1>0||(++a<0)&&(!(b--<=0));编译器会解释成下面这种 k=(a+1>0)||((++a<0)&&(!(b--<=0)));而不是下面这种 k=((a+1>0)||(++a<0))&&(!(b--<=0));刚才我有看了一下优先级的那张表 &&为11 ||为12 所以 x||y&&z 就相当于&&在||内部,就成x||...
答:因为十进制数范围在-65536~65535,这里写65536超过了写成二进制是111111111111111(十五个1,这是65535),再加一就变成了1000000000000000(这是0的补码),所以为0。
答:a.k=0;printf("%d\n",sizeof(a));printf("%d\n",a.u.x);printf("address x=%p\n",&a.u.x);printf("address y=%p\n",&a.u.y);printf("address z=%p\n",&a.u.z);printf("address k=%p\n",&a.k);return 0;} 可见,x,y,z,k每个占4字节,x和k,共用同一个地址,...
答://改成C=(5.0f/9.0f)*(F-32);//因为5和9都是int整形数, 所以5/9 = 0 -> c 就为0, 所以要改成浮点数
答:把运行的图贴一下啊。运行时必须要输入两个数字,中间用英文的逗号分隔。
网友评论:
郦沿18779638892:
c语言为啥输出老是0? -
5884盛纪
: scanf("%lf,%d,%lf", &rate, &year, &capital); 你的代码里输入格式是%lf,%d,%lf,中间有逗号,所以输入的时候也要有逗号 估计你输入的时候没加逗号(注意是西文逗号),而是用空格分隔的,要不加逗号用空格分隔的话,就把%lf,%d,%lf中间的逗号去掉,这样就可以用空格分隔输入了 我试着运行了下: 年化15%,5年翻倍,没错
郦沿18779638892:
简单的C语言程序,为什么输出始终是0啊? -
5884盛纪
: 见程序中的注释.#includemain(){int n,i,a,b,c;double s; while(scanf("%d",&n)!=0) //这里没判断n的值,改为while(scanf("%d",&n)!=0 && n!=0) { a=0; b=0; c=0; for(i=1;i
郦沿18779638892:
C语言自己编写函数:为什么输出结果总是0 -
5884盛纪
: sqrt的返回值类型是double型,你输出的时候用%d当然结果是错的了,可以试试类型转换,把最后一个printf语句改成如下: printf("%d\n",(int)sqrt(n));
郦沿18779638892:
看这个C语言程序.为什么输出的都是0 -
5884盛纪
: 第一句有问题,scanf你是无法读取到EOF的,End Of File,在电脑的术语缩写通常为 EOF,在作业系统决定资料源无更多的资料可读取. for循环也有问题,判断循环结束用i>=0,会一直为真,循环无法结束.当然你的代码里面有跳出break,但这种写法比较奇特. 看你的程序,应该是把二进制转换成十进制的数,代码不全,不好给你查错.
郦沿18779638892:
c语言程序题,不知道为什么,输出的结果永远是0……求解. -
5884盛纪
: #include <stdio.h> int sdk(int m, int n) { int i = 0; int sum = 0; for (i = m; i < n; i++) { sum += i; } return sum;//<==================== } //定义求和函数 int main() { int i = 0; int m, n = 0; int sum = 0; printf("输入m和n\n"); do { scanf("%d %d", ...
郦沿18779638892:
C语言 帮我看一下这个程序为什么结果总是输出0 -
5884盛纪
: 你term没初值,C语言默认是0,也就是说,你的term=term*2,始终得到的term还是0; sum也是0,因此结果始终是0; 你在long sum=0语句前面加上一句 term=1;结果就对了;
郦沿18779638892:
C语言编程 程序计算结果总是为0怎么办 -
5884盛纪
: 你要是计算小数要用 double 用int 的话,比如2/5就会等于0
郦沿18779638892:
C语言 输出总是0 -
5884盛纪
: #include <stdio.h> #include <stdlib.h> int main(){float i = 0;//第一个数float y = 0;//第二个数float d = 0;//结果int f = 0;//符号a:printf("输入数1:\n");scanf("%f",&i);while(getchar() != '\n');printf("输入数2:\n");scanf("%f",&y)...
郦沿18779638892:
C语言如下程序计算组合数为何结果一直是0? -
5884盛纪
: 很抱歉的说,当m>n时,我这儿用你的程序运行是正常的! 当然组合数前提条件就是m>=n哈
郦沿18779638892:
C语言代码为什么算出来的始终为0,题目:编程计算 a+aa+aaa+…+aa…a(n个a)的值,n和a的值由键盘输入. -
5884盛纪
: 程序是完全正确的,没有问题.要注意输入二个数字要以逗号分隔: #include int main() {long term=0,sum=0; int a,i,n; scanf("%d,%d",&a,&n); for(i=1;i<=n;i++) {term=term*10+a; sum=sum+term; } printf("sum=%ld\n",sum); return 0; }