|
马上注册,结交更多好友,享用更多功能^_^
您需要 登录 才可以下载或查看,没有账号?立即注册
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;
- }
复制代码
|
|