#include<stdio.h>
#include<string.h>
struct candidate
{
char name[9];
int score;
};
int main()
{
int i,j,n,m,k=0,f,o;
scanf("%d",&n);
struct candidate p[n];
for(i=0;i<n;i++)
p[i].score=0;
for(i=0;i<n;i++)
{
scanf("%s",p[i].name);
}
scanf("%d",&m);
struct candidate t[m];
struct candidate q[m];
for(i=0;i<m;i++)
{
scanf("%s",t[i].name);
}
for(i=0;i<m;i++)
{
f=0;
for(j=0;j<n;j++)
{
o=1;
for(k=0;t[i].name[k]!='\0';k++)
{
if(t[i].name[k]!=p[i].name[k]&&t[i].name[k]!=p[i].name[k]+32&&t[i].name[k]!=p[i].name[k]-32)
{
f++;
o=0;
break;
}
}
if(o==1)
{
p[j].score++;
}
}
//printf("%d\n",f);
if(f==n)
{
q[k]=t[i];
k++;
}
}
struct candidate w;
for(i=0;i<n-1;i++)
{
for(j=1;j<n-1;j++)
{
if(p[j-1].score<p[j].score)
{
w=p[j-1];
p[j-1]=p[j];
p[j]=w;
}
}
}
for(i=0;i<n;i++)
{
printf("%s:%d\n",p[i].name,p[i].score);
}
if(k>0)
printf("invalid vote:\n");
for(i=0;i<k;i++)
{
printf("%s\n",q[i].name);
}
return 0;
}
PTA选民投票 代码是错误的,具体要怎么改
- 写回答
- 好问题 0 提建议
- 关注问题
- 邀请回答
-
2条回答 默认 最新
关注【相关推荐】
- 这有个类似的问题, 你可以参考下: https://ask.csdn.net/questions/7547229
- 这篇博客你也可以参考下:PTA练习题: 两个有序链表序列的合并
- 除此之外, 这篇博客: PTA题目:递增有序顺序表的插入中的 答案: 部分也许能够解决你的问题, 你可以仔细阅读以下内容或跳转源博客中阅读:
#include<stdio.h> int main(){ int n,i,k,t; scanf("%d",&n); int sum[n]; for(i=0;i<n;i++){ scanf("%d",&sum[i]); } scanf("%d",&k); if(k<=sum[n-1]){ for(i=0;i<n;i++){ if(k<=sum[i]){ t=i; break; } } for(i=n;i>=t;i--){ sum[i]=sum[i-1]; } n++; sum[t]=k; } else{ sum[n]=k; n++; } for(i=0;i<n;i++){ printf("%d,",sum[i]); } }如果觉得博主写得不错的话,就点个赞或者关注吧!
如果你已经解决了该问题, 非常希望你能够分享一下解决方案, 写成博客, 将相关链接放在评论区, 以帮助更多的人 ^-^解决 无用评论 打赏 举报