一些c语言的作业,高手帮忙回答一下(4)

2024-12-01 10:58:00
推荐回答(5个)
回答1:

问题一:

#include
int main(void)
{
float a;
int b;
printf("请输入存款的本金和年限\n");
scanf("%f%d",&a,&b);
switch(b)
{
case 1:
printf("合计=%f\n",a*0.0063*12*1+a);
break;
case 2:
printf("合计=%f\n",a*0.0066*12*2+a);
break;
case 3:
printf("合计=%f\n",a*0.0069*12*3+a);
break;
case 5:
printf("合计=%f\n",a*0.0075*12*5+a);
break;
case 8:
printf("合计=%f\n",a*0.0084*12*8+a);
break;
default:printf("输入错误!\n");
}
return 0;}
问题二:
#include
int main(void)
{
float a,b,d;
char c;
printf("请输入一个算式:\n");
scanf("%f%c%f",&a,&c,&b);
switch(c)
{
case '+':
d=a+b;
printf("结果为:%lf\n",d);
break;
case '-':
d=a-b;
printf("结果为:%lf\n",d);
break;
case '*':
d=a*b;
printf("结果为:%lf\n",d);
break;
case '/':
d=a/b;
printf("结果为:%lf\n",d);
break;
default:printf("错误\n");
break;
}
return 0;}
问题三:
#include
int main (void)
{
int i,j;
printf("请输入一个数字:\n");
j=scanf("%d",&i);
while (i!=9)
{
printf("请输入一个数字:\n");
j=scanf("%d",&i);
if(j==0)
{
printf("输出错误");
break;
}
}
return 0;
}
问题四:
#include
int main (void)
{
char c;
while(scanf("%c",&c),c!='q')
putchar(c);
return 0;
}
问题五:
#include
int main(void)
{
int i;
for(i=1;i<=50;++i)
if(i%3!=0)
printf("%d\n",i);
return 0;
}

回答2:

第一个程序主要错的原因:是打印时用“%f”,你的利率公式不是整型的,所以不能用“%d”,还有,c压根没用,浪费空间,不用声明c就可以。
第6个只要加一句while((scanf("%d",&i))!=1)){while(getchar()!='\n' ) printf("不符合要求,请重新输入"
scanf函数是一个具有返回值的函数
后一个是要while(scanf("%c",&a))!=1)就可以
最后一个改为if(a%3!=0)这样来判断只要余数不为0,那么就不能被整除。
学习c语言要学会举一反三随机应变,亲,要继续加油偶!

回答3:

(1),题目计算的是利息和本金的总和,记得要加上本金
#include
int main(void)
{
int a,b;
printf("请输入存款的本金和年限\n");
scanf("%d,%d",&a,&b);
switch(b)
{
case 1:
printf("合计=%.2lf\n",a*0.0063*12*b+a);
break;
case 2:
printf("合计=%.2lf\n",a*0.0066*12*b+a);
break;
case 3:
printf("合计=%.2lf\n",a*0.0069*12*b+a);
break;
case 5:
printf("合计=%.2lf\n",a*0.0075*12*b+a);
break;
case 8:
printf("合计=%.2lf\n",a*0.0084*12*b+a);
break;
default:printf("输入错误!\n");
}

return 0;
}

(2)注意“==”和“=”之间的区别,还有你写的是int main,返回的是int类型,最后要returned0,不返回的话写成void main
#include
int main(void)
{
float a,b,d;
char c;
printf("请输入一个算式:\n");
scanf("%f%c%f",&a,&c,&b);
switch(c)
{
case '+':
d=a+b;
printf("结果为:%lf\n",d);
break;
case '-':
d=a-b;
printf("结果为:%lf\n",d);
break;
case '*':
d=a*b;
printf("结果为:%lf\n",d);
break;
case '/':
d=a/b;
printf("结果为:%lf\n",d);
break;
default:printf("错误\n");
break;
}
return 0;


(3)
int main(int argc,char **argv)
{
int num;

while(1)
{
printf("Please input a num:");
scanf("%d",&num);

if(num >= 0 && num < 9)
continue;
else if(num == 9)
break;
else
{
printf("输入错误!\n");
return -1;
}
}
return 0;
}

回答4:

12有人回答
34问题是回车后读取进入scanf影响输入!故有很多种方法,可以刷新缓冲区,也可以在输入前面再加一个空输入!
5是i没有赋初值!

回答5:

#include
main()
{
int a=1;
while(1<=a&&a<=50)
{
if(a%3!=0)
printf("%5d",a);
a++;}
}
你 的程序首先给A弄一个初值,i!=(a%3==0);句程序,问题很大!自己看下