|
发表于 2020-5-7 01:28:01
|
显示全部楼层
本帖最后由 THU_LSM 于 2020-5-7 01:29 编辑
- #include <stdio.h>
- struct Pair
- {
- int key;
- int value;
- };
- struct Pair pair[10];
- void input(struct Pair *p);
- void input(struct Pair *p)
- {
- printf("请输入选手编号\n");
- scanf("%d",&(p->key));
- printf("请输入选手成绩\n");
- scanf("%d",&(p->value));
- }
- int **sort(struct Pair array[]);
- int **sort(struct Pair array[])
- {
- static int keys[10];
- static int values[10];
- for(int i = 0; i<10; i++)
- {
- keys[i] = (array+i)->key;
- values[i] = (array+i)->value;
- }
- for(int k = 0; k<9; k++)
- {
- for (int j = k+1; j<10; j++)
- {
- if(values[k] < values[j])
- {
- int temp;
- temp = values[k];
- values[k] = values[j];
- values[j]= temp;
- temp = keys[k];
- keys[k] = keys[j];
- keys[j]= temp;
- }
- }
- }
- printf("成绩从高到低排列为:\n");
- for(int i=0; i<10; i++)
- {
- printf("%d ", values[i]);
- }
- printf("\n");
- printf("对应选手编号为:\n");
- for(int i=0; i<10; i++)
- {
- printf("%d ", keys[i]);
- }
- printf("\n");
-
- static int *p[2];
- p[0] = values;
- p[1] = keys;
- return p;
- }
- void top3(int *keys, int *values);
- void top3(int *keys, int *values)
- {
- for(int i=0; i<3; i++)
- {
- printf("第%d名编号为%d,分数为%d\n", i+1,*(keys+i),*(values+i));
- }
- }
- int main()
- {
- for(int i=0; i<10; i++)
- {
- input(&pair[i]);
- }
- int **p = sort(pair);
- top3(*(p+1),*p);
- return 0;
- }
复制代码
兄弟 熬夜帮你写的 |
|