这个c语言程序怎么改???if(strcmp(na,can[i].name)==0)这个是错的吗???
答案:2 悬赏:0 手机版
解决时间 2021-04-11 22:51
- 提问者网友:杀手的诗
- 2021-04-11 14:43
#include
#include
#include
struct select
{
char name[20];
int votes;
}can[50];
static int N,sum;
main()
{
int i,j,qi=0,f=0;
char na[20];
FILE *fp;
for(j=0;j<=50;j++)
can[i].votes=0;
printf("请输入候选人数;\n");
scanf("%d",&N);
printf("请按提示输入候选人的名字!\n");
for(i=0;i {
printf("请输入第%d位候选人的名字 :\n",i+1);
scanf("%s",can[i].name);
}
printf("请输入投票人数:\n");
scanf("%d",&sum);
for(i=1;i<=sum;i++)
{
printf("请注意,如果你所写的名字不在候选人名单里,则意味着该票为弃权票!!\n");
printf("如果要投弃权票,请输入5个0(例如:00000)!\n");
printf("请开始投票:\n");
printf("请写出你所支持的候选人名字:\n");
scanf("%s",na);
printf("你支持的候选人是:%s\n",na);
for(j=0;j if(strcmp(na,can[i].name)==0)
{can[i].votes++;
printf("恭喜你,投票有效!\n");}
else
f=f+1;
if(f==N)
{qi++;
printf("抱歉,你所写的名字不在候选人名单里,该票被视为弃权票处理!\n"); }
} while(1);
fp=fopen("candidate1.txt","a");
if(fp==NULL)
printf("error");
else
{
fprintf(fp,"\n\n");
fprintf(fp,"投票结果为:\n");
fprintf(fp,"候选人\t\t\t\t\t所得票数\n");
for(j=0;j<=50;j++)
fprintf(fp,"%s\t\t\t\t\t%d\n",can[i].name,can[i].votes);
fprintf(fp,"本次选举共有%d人参与投票,共有%d张有效票,有%d张弃权票。",sum,sum-qi,qi);
}
return 0;
}
最佳答案
- 五星知识达人网友:污到你湿
- 2021-04-11 14:55
修改后:
#include
#include
#include
struct select
{
char name[20];
int votes;
}can[50];
static int N,sum;
main()
{
int i,j,qi=0,f=0;
char na[20];
FILE *fp;
for(j=0;j<50;j++)
can[j].votes=0;
printf("请输入候选人数;\n");
scanf("%d",&N);
printf("请按提示输入候选人的名字!\n");
for(i=0;i
{
printf("请输入第%d位候选人的名字 :\n",i+1);
scanf("%s",can[i].name);
}
printf("请输入投票人数:\n");
scanf("%d",&sum);
for(i=1;i<=sum;i++)
{
printf("请注意,如果你所写的名字不在候选人名单里,则意味着该票为弃权票!!\n");
printf("如果要投弃权票,请输入5个0(例如:00000)!\n");
printf("请开始投票:\n");
printf("请写出你所支持的候选人名字:\n");
scanf("%s",na);
printf("你支持的候选人是:%s\n",na);
for(j=0;j
if(strcmp(na,can[j].name)==0)
{can[i].votes++;
printf("恭喜你,投票有效!\n");}
else
f=f+1;
if(f==N)
{qi++;
printf("抱歉,你所写的名字不在候选人名单里,该票被视为弃权票处理!\n"); }
}
fp=fopen("candidate1.txt","a");
if(fp==NULL)
printf("error");
else
{
fprintf(fp,"\n\n");
fprintf(fp,"投票结果为:\n");
fprintf(fp,"候选人\t\t\t\t\t所得票数\n");
for(j=0;j<=50;j++)
fprintf(fp,"%s\t\t\t\t\t%d\n",can[i].name,can[i].votes);
fprintf(fp,"本次选举共有%d人参与投票,共有%d张有效票,有%d张弃权票。",sum,sum-qi,qi);
}
return 0;
}
全部回答
- 1楼网友:轻熟杀无赦
- 2021-04-11 15:02
strcmp是c的库函数,功能是把()中的形参指针指向的字符串比较一下,按对应字符的ascii码大小确定返回值:前者大于后者时返回1,相等时返回0,前者小于后者时返回-1。strcmp(name,eng[i].name)的意思就是比较name和eng[i].name指向的字符串谁大谁小或相等。
我要举报
如以上回答内容为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
点此我要举报以上问答信息
大家都在看
推荐资讯