为什么杭电2061会错呢 http://acm.hdu.edu.cn/showproblem.php?pid=2061

#include<stdio.h>intmain(){intn,k,i,flag,j;floatc[100],s[100],csum,gpa;charname[100];... #include <stdio.h>
int main()
{
int n,k,i,flag,j;
float c[100],s[100],csum,gpa;
char name[100];//如果改成这样就没错了 char name[100][31];为什么呢
while(scanf("%d",&n)!=EOF)
{
for(i=1;i<=n;i++)
{
scanf("%d",&k);
for(j=1;j<=k;j++)
{
getchar();
scanf("%s %f %f",name[j],&c[j],&s[j]);
}
flag=0;gpa=0;csum=0;
for(j=1;j<=k;j++)
{
if (s[j]<60)
flag=1;
csum+=c[j];
gpa+=c[j]*s[j];
}
if(flag==1)
printf("Sorry!\n");
else
printf("%.2f\n",gpa/csum);
if(i!=n)
printf("\n");
}
}
}
展开
 我来答
Tidus_forever
2012-05-08 · TA获得超过4399个赞
知道大有可为答主
回答量:2782
采纳率:100%
帮助的人:1829万
展开全部
char name[100]; 是一个字符数组 可以保存一个字符串
char name[100][31]; 是一个字符串数组,每个元素都可以保存一个字符串。
你看看你需要的是哪一种吧
追问
额,那为什么写char name[100];会是错的呢
追答
3
Algorithm 3 97
DataStruct 3 90
softwareProject 4 85
这要保存三个字符串对不对?
char name[100] 是一个字符串,长度为100
char name[100][31] 是100个长度为30的字符串
这里k=3 所以name[1] 保存Algorithm
name[2]保存DataStruct
name[3] 保存softwareProject
char name[100];这一个字符串,怎么保存三个?
porker2008
2012-05-07 · TA获得超过1.4万个赞
知道大有可为答主
回答量:7066
采纳率:62%
帮助的人:1.1亿
展开全部
scanf("%s %f %f",name,&c[j],&s[j]);
这行把name后面的[j]删掉就可以了
更多追问追答
追问
还是错的
追答
你说的是char name[100];还是char name[100][31];是错的?
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式