1. 有3个候选人(“zhang”.“li”.“sun”)及n个选民,每个选民只能投票选1人,编一个统计选票的程序,先后输入被选人的名字,最后输出他们的得票结果。
源代码:
#include <stdio.h>
#include <string.h>
struct Leader
{
char name[32];
int count;
} leader[3]={"Zhang",0,"Li",0,"Sun",0};
int main()
{
int n;
int i,j;
char Name[32];
while(scanf("%d",&n)!=EOF)
{
for(i=0;i<n;i++)
{
scanf("%s",Name);
for(j=0;j<3;j++)
{
if(strcmp(Name,leader[j].name)==0)
leader[j].count++;
}
}
for(i=0;i<3;i++)
{
printf("%s:%d\n",leader[i].name,leader[i].count);
leader[i].count=0; //多组输入中注意初始化
}
}
return 0;
}
程序截图:
2. 输入n(1<=n<=100)及n个学生的信息(包括学号、姓名、成绩),要求按照成绩的高低顺序输出各学生信息。
源代码:
#include <stdio.h>
#include <string.h>
#define maxn 105
struct Student
{
int num;
char name[32];
double score;
} stu[maxn];
void Sortbyscore(struct Student stu[],int n) //这里使用选择排序
{
int i,j,k;
struct Student t;
for(i=0;i<n-1;i++) //每次将成绩最高的学生放到当前"有序区"最后
{
k=i;
for(j=i+1;j<n;j++)
{
if(stu[j].score>stu[k].score)
k=j;
}
if(k!=i)
{