c语言编程题,这个哪里错了? 5
这是题目:https://blog.csdn.net/horour/article/details/81773541#include<stdio.h>main(){int...
这是题目:https://blog.csdn.net/horour/article/details/81773541
#include<stdio.h>
main()
{
int n,i;
float a[100],b[100];
char s[100];
scanf("%d",&n);
for(i=0;i<n;i++)
{
scanf("%c%d",&s[i],&a[i]);
}
for(i=0;i<n;i++)
{
if(s[i]=='M')
b[i]=a[i]/1.09;
else
b[i]=a[i]*1.09;
printf("%.2f\n",b[i]);
}
} 展开
#include<stdio.h>
main()
{
int n,i;
float a[100],b[100];
char s[100];
scanf("%d",&n);
for(i=0;i<n;i++)
{
scanf("%c%d",&s[i],&a[i]);
}
for(i=0;i<n;i++)
{
if(s[i]=='M')
b[i]=a[i]/1.09;
else
b[i]=a[i]*1.09;
printf("%.2f\n",b[i]);
}
} 展开
3个回答
展开全部
scanf("%c%d",&s[i],&a[i]);
改为
scanf("%c%f",&s[i],&a[i]);
改为
scanf("%c%f",&s[i],&a[i]);
追问
哦,还是错的。我觉得是字符数组赋值错了,可不知道怎么改。
追答
见linjunlzy的回复,他是对的。
或者在
scanf("%c%f",&s[i],&a[i]);前面加一句:
setbuf(stdin, NULL);
在每次从stdin读取之前,清除缓冲区也可以。
jyhero20的回复使用了:fflush(stdin);
fflush(stdin);不是标准C/C++中的用法,是微软的C开发工具中特有的。如果不考虑平台移植,也是可以的。
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
第一个for循环部分改成:
scanf("%c%f",&s[i],&a[i]);
getchar();//吸收换行符。否则第二次开始%c读的是换行符
scanf("%c%f",&s[i],&a[i]);
getchar();//吸收换行符。否则第二次开始%c读的是换行符
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询
广告 您可能关注的内容 |