c语言分步求利润问题,请帮忙改正一下我写的哪错了

Python013

c语言分步求利润问题,请帮忙改正一下我写的哪错了,第1张

我在这个程序发现了逻辑问题 #include"stdio.h" void main() { int lr,s=1,cdouble jtprintf("请输入收入的利润:\n")l: scanf("%d",&lr)if(lr<0)//加上大括号 不然goto l会一直执行 { printf("输入有误,请重新输入")goto l} else if(lr>100)//这个地方,如果lr>100那么c=100 在switch里是没有此项的,所以会报错 只要输入不超过100就对的 { c=100s=lr-100} else c=lr/10switch(c)//这个 { case 0:jt=lr*0.1breakcase 1:jt=1.0+(lr-10)*0.075breakcase 2: case 3:jt=1.0+0.75+(lr-20.0)*0.05breakcase 4: case 5:jt=1.0+0.75+1.0+(lr-40.0)*0.03breakcase 6: case 7: case 8: case 9:jt=1+0.75+1+1.2+(lr-60)*0.015break} jt=jt+s*0.01printf("%f",jt)} 不懂的地方追问 追问: s为什么要先赋初值,他到期与不扶植有什么区别 ,后面不是有一个s=lr-100的吗 回答: { c=100s=lr-100} 如果执行的是这个else if 不用 赋值 也不会出错 但是如果执行上面的 s是没有值的所有最后乘以一个不存在的值运行就会报错 追问: 那赋s=0不是更准确吗?,s不 赋值 是不是s的值是乱的 随即产生的数 回答: case 6: case 7: case 8: case 9:jt=1+0.75+1+1.2+(lr-60)*0.015break} jt=jt+s*0.01//如果s=0,jt的值还有什么意义? printf("%f",jt)} 追问: s是超过100的部分 如果没超过100的话jt=jt+s*0.01就是多余的,我是不知道怎么用switch语句对100以上的所有可能操作,所以才加了个if语句针对大于100的情况,可能在switch语句中有你说的c=100不能执行,、这个问题可以作稍微的改变就应该能行 回答: 原题是怎么写的?我帮你写出来?或者改一改?

#include <stdio.h>

int fun() {

int i,j,m,sum = 0

for(i = 1 i < 7 i += 2) {

m = 1

for(j = i j < i + 3 ++j)

m *= j

sum += m

// printf("%d\n",m)

}

return sum

}

int main() {

    int i,m = 1,sum= 0

    for(i = 1 i < 9 i += 2)

     sum += i

    printf("1 + 3 + 5 + 7 = %d\n",sum)

    printf("1*2*3+3*4*5+5*6*7 = %d\n",fun())

    return 0

}

#include <stdio.h>

void main()

{

char str[10]//定义字符串,可存10字符

scanf ("%s",str)//读入字符串, 遇到空格,回车结束,要包含空格,用gets(str)

printf ("%s\n",str)//输出字符串

}