这个c语言程序错在哪里,为什么无法输出?

#include<stdio.h>
int main()
{
int i,j;
int a = i / 10000;
printf("请输入当月利润:");
scanf("%d",&i);
if(a>10)
a=10;
switch(a)
{
case 0:j=i*0.1;break;
case 1:j=100000*0.1 (i-100000)*0.075;break;
case 2:break;
case 3:j=200000*0.1 (i-200000)*0.05;break;
case 4:break;
case 5:j=40000*0.1 (i-40000)*0.03;break;
case 6:break;
case 7:break;
case 8:break;
case 9:j=600000*0.1 (i-600000)*0.015;break;
case 10:j=1000000*0.1 (i-1000000)*0.01;break;
default:break;
}
printf("应发放奖金总额:%d\n",j);
return 0;

}

#include<stdio.h>
int main()
{
int i;
double j;//这里需要修改
int a;
printf("请输入当月利润:");
scanf("%d",&i);
a=i/10000;//修改的地方,如果在之前的地方i没有赋值造成a没有结果,也就不会运行了
if(a>10)a=10;
switch(a)
{
case0:j=i*0.1;break;
case1:j=100000*0.1+(i-100000)*0.075;break;
//case 2:break;
case 3:j=200000*0.1+(i-200000)*0.05;break;
//case 4:break;
case 5:j=40000*0.1+(i-40000)*0.03;break;
//case 6:break;
//case 7:break;
//case 8:break;
case 9:j=600000*0.1+(i-600000)*0.015;break;
case 10:j=1000000*0.1+(i-1000000)*0.01;break;
default:break;
}
printf("应发放奖金总额:%f\n",j);//修改了j的数据类型
return 0;

}

修改的地方我标出来了

温馨提示:内容为网友见解,仅供参考
第1个回答  2020-03-25
把a=i/10000;放到scanf后面
.......
...........
int a; //这里只定义就好,i还没有输入呢
printf("请输入当月利润:");
scanf("%d", &i);
a = i / 10000; //放这里计算
if (a > 10)
............
.......本回答被网友采纳

c语言运行程序为什么没有输出数?
1、输入的格式不对 要输入“浮点数”并用 “逗号” 分隔输入三个数两个逗号后还要额外多加一回车才开始后面的流程,如果把 scanf("%f,%f,%f\\n",&a,&b,&c);改为 scanf("%f%f%f",&a,&b,&c);就可以用空白符做分隔了。2、没有输出 不知道计算的结果那算法就没有意义了。输出不一定是要...

c语言程序 哪里出错了呢 始终运行不出结果
在C语言编程中,若程序始终无法输出结果,可能是因为输入数据的类型与程序调用的数据类型不一致。以scanf函数为例,当使用 scanf("%lf%lf%lf",&a,&b,&c);进行输入时,确实将输入的数字以float类型存储至内存中。然而,程序在读取这些内存时,可能期望以double类型进行解析。这种类型不匹配会导致解析出...

C语言 输出内容不完整,请问我这个程序哪里错了?
因为scanf函数以空格,制表符Tab和回车符为结束符,而gets函数可以读入空格,制表符Tab,以回车键为结束符,所以你的程序空格后的内容被删除了.但是C语言新标准弃用了gets函数,因为它不检查数组越界,改用了fgets函数.所以你的程序中输入字符中有空格,需要把输入函数scanf换成fgets函数.改正后的程序如下(改动的...

C语言程序不报错也不执行,为什么呢?
在C语言中,程序没有报错并不意味着程序一定是正确的。有时候,程序可能会出现逻辑错误或者运行时错误,导致程序无法执行或者输出不符合预期。以下是一些常见的导致程序无法执行的原因:1. 程序陷入死循环:程序在某个地方出现了死循环,使得程序无法继续向下执行。如果程序似乎无法结束,可以检查程序是否存在...

这个c语言代码错哪里了?
5、忘记加分号 分号是C语句中不可缺少的一部分,语句末尾必须有分号。a=1 b=2 编译时,编译程序在“a=1”后面没发现分号,就把下一行“b=2”也作为上一行语句的一部分,这就会出现语法错误。改错时,有时在被指出有错的一行中未发现错误,就需要看一下上一行是否漏掉了分号。{ z=x+y; t=z...

...程序总是无法正确输出结果,不知道错误出在什么地方
{ flag++;continue; \/\/返回上面,接着判断是不是空格 } str2[i-flag]=str1[i]; \/\/这里赋值的计算 }str2[i-flag]='\\0'; \/\/这个对字符串加上结束符 printf("清除空格后的文字为:\\n");puts(str2);\/\/main(); \/\/ 这句删除 return 0;} ...

c语言,运行后为什么没结果。
可能情况有:1、是不是程序运行出现错误,如:死循环;如果是死循环,程序将会进行持续运算,因此不会有退出结果。2、没有输出结果的函数,例如是不是没有printf函数?或者你可以把运行结果和代码发给我看看。。

c语言新手问题,为什么输出不了?一输出程序就崩溃,难道我指针用错了...
最后一句,printf("%s",b);就可以了。因为b是字符串指针了。

c语言输入自变量,没有结果输出是为啥
scanf("%lf",&x);printf("自变量x为:%lf\\n",x);printf("函数f(x)的值为:%lf\\n",y);

C语言编的程序不能显示输出是那里出的问题?
回答:这是因为程序的时间是很短的,程序运行结束了,该进程也就结束了,所以你是看不到屏幕上的显示。解决方法:(1)在程序最后使用getchar()函数(2)或者是添加system("pause"); 程序运行到此处,就会等待用户的输入,所以此时用户是可以看到屏幕上的显示,直到用户点击任意键。

相似回答