大神看看我的这个C语言程序错哪里了
#include<stdio.h>structcandidate{charcandidatename[10];intpiaoshu;};intmain(){structc...
#include <stdio.h>
struct candidate
{
char candidatename[10];
int piaoshu;
};
int main()
{
struct candidate cans[4];
char toupiao[10][10];
int i;//用于循环变量的控制
int j,k;//用于输出投票统计结果的形状---
int a=0,b=0,c=0,d=0;//用于计算得票数
cans[0].candidatename="zhang";
cans[1].candidatename="li";
cans[2].candidatename="wang";
for(i=0;i<=9;i++)
{
gets(toupiao[i]);
if(toupiao[i]==cans[0].candidatename)
a++;
else if(toupiao[i]==cans[1].candidatename)
b++;
else if(toupiao[i]==cans[2].candidatename)
c++;
else
d++;
}
cans[0].piaoshu=a;
cans[1].piaoshu=b;
cans[2].piaoshu=c;
cans[3].piaoshu=d;
printf("投票统计结果为:\n");
for(j=0;j<10;j++)
{
printf("--");
}
printf("序号\t候选人\t票数\t");
printf("1.\t%s\t%d\t\n",cans[0].candidatename,a);
printf("2.\t%s\t%d\t\n",cans[1].candidatename,b);
printf("3.\t%s\t%d\t\n",cans[2].candidatename,c);
for(k=0;k<10;k++)
{
printf("--");
}
printf("废票数量:%d\n",d);
return 0;
} 展开
struct candidate
{
char candidatename[10];
int piaoshu;
};
int main()
{
struct candidate cans[4];
char toupiao[10][10];
int i;//用于循环变量的控制
int j,k;//用于输出投票统计结果的形状---
int a=0,b=0,c=0,d=0;//用于计算得票数
cans[0].candidatename="zhang";
cans[1].candidatename="li";
cans[2].candidatename="wang";
for(i=0;i<=9;i++)
{
gets(toupiao[i]);
if(toupiao[i]==cans[0].candidatename)
a++;
else if(toupiao[i]==cans[1].candidatename)
b++;
else if(toupiao[i]==cans[2].candidatename)
c++;
else
d++;
}
cans[0].piaoshu=a;
cans[1].piaoshu=b;
cans[2].piaoshu=c;
cans[3].piaoshu=d;
printf("投票统计结果为:\n");
for(j=0;j<10;j++)
{
printf("--");
}
printf("序号\t候选人\t票数\t");
printf("1.\t%s\t%d\t\n",cans[0].candidatename,a);
printf("2.\t%s\t%d\t\n",cans[1].candidatename,b);
printf("3.\t%s\t%d\t\n",cans[2].candidatename,c);
for(k=0;k<10;k++)
{
printf("--");
}
printf("废票数量:%d\n",d);
return 0;
} 展开
展开全部
//这样改就可以了。
#include <stdio.h>
#include <string.h>
struct candidate
{
char candidatename[10];
int piaoshu;
};
int main()
{
struct candidate cans[4];
char toupiao[10][10];
int i;//用于循环变量的控制
int j,k;//用于输出投票统计结果的形状---
int a=0,b=0,c=0,d=0;//用于计算得票数
strcpy(cans[0].candidatename,"zhang");
strcpy(cans[1].candidatename,"li");
strcpy(cans[2].candidatename,"wang");
for(i=0;i<=9;i++)
{
gets(toupiao[i]);
if(toupiao[i]==cans[0].candidatename)
a++;
else if(toupiao[i]==cans[1].candidatename)
b++;
else if(toupiao[i]==cans[2].candidatename)
c++;
else
d++;
}
cans[0].piaoshu=a;
cans[1].piaoshu=b;
cans[2].piaoshu=c;
cans[3].piaoshu=d;
printf("投票统计结果为:\n");
for(j=0;j<10;j++)
{
printf("--");
}
printf("序号\t候选人\t票数\t");
printf("1.\t%s\t%d\t\n",cans[0].candidatename,a);
printf("2.\t%s\t%d\t\n",cans[1].candidatename,b);
printf("3.\t%s\t%d\t\n",cans[2].candidatename,c);
for(k=0;k<10;k++)
{
printf("--");
}
printf("废票数量:%d\n",d);
return 0;
}
更多追问追答
追问
为什么要这么改呢。。我的错在哪。。 求指教。。
追答
首先cans[0].candidatename这个是数组。不可以直接赋值。
你只可以用c语言里面的strcpy字符串拷贝函数来进行赋值。
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询