|
马上注册,结交更多好友,享用更多功能^_^
您需要 登录 才可以下载或查看,没有账号?立即注册
x
#include<stdio.h>
#include<stdlib.h>
#include<conio.h>
#include<string.h>
#define PF printf
#define NUM 10
struct per //结构体PER 带有两个CAHR属性
{
char name[20];
int nuber;
}man[4]={{"赵",0},{"钱",0},{"孙",0},{"李",0}};
void main()
{
int i;
int j=0;
int max=0;
int min=0;
char a[4];
PF("候选人有:%s %s %s %s\n",man[0].name,
man[1].name,man[2].name,man[3].name);
for(i=0;i<10;i++)
{
PF("输入候选人名称:");
gets(a);
if(strcmp(a,man[0].name)==0)
{man[0].nuber +=1;}
else if(strcmp(a,man[1].name)==0)
{man[1].nuber +=1;}
else if(strcmp(a,man[2].name)==0)
{man[2].nuber +=1;}
else if(strcmp(a,man[3].name)==0)
{man[3].nuber +=1;}
}
for(i=0;i<4;i++)
{
if(man[i].nuber > man[i+1].nuber)
{
max=i;
}
}
PF("排名第一的是%s,得分%d\n",man[max].name,man[max].nuber);
for(i=0;i<3;i++)
{
if(i!=max)
{
}
}
PF("排名最低的是%s,得分%d\n",man[min].name,man[min].nuber);
}
源码删了写写了删。然后保留成这样了。我只能做到输出最多票的那个人,但理想是,可以从大到小排列输出所有人,改来改去已经被自己搞蒙圈,说不定中间其实有正确的,先留帖。说不定等会明白了。
#include <stdio.h>
#include <string.h>
struct Per
{
char name[20];
int number;
} man[4] = {{"赵", 3}, {"钱", 1}, {"孙", 9}, {"李", 5}};
void Swap(struct Per *a, struct Per *b)
{
struct Per tmp = *a;
*a = *b;
*b = tmp;
}
void Sort(struct Per data[], int len)
{
for(int i = 0; i < len; ++i)
{
for(int j = i + 1; j < len; ++j)
{
if(data[i].number > data[j].number)
Swap(&data[i], &data[j]);
}
}
}
int main(void)
{
Sort(man, 4);
for(int i = 0; i < 4; ++i)
{
printf("%s: %d\n", man[i].name, man[i].number);
}
return 0;
}
|
|