#include<stdio.h>
int cmx(int a[],int n)
{
int max=-1;
int i,m;
for(i=0;i<n;i++)
{
if(a[i]>max){max=a[i];m=i;}
}
return m;
}
int cmi(int a[],int n)
{
int min=101;
int i,m;
for(i=0;i<n;i++)
{
if(a[i]<min){min=a[i];m=i;}
}
return m;
}
int main()
{
int n;
scanf("%d",&n);
char name[n],num[n];
int score[n];
int i;
for(i=0;i<n;i++)
{
scanf("%s %s %d\n",&name[i],&num[i],&score[i]);
}
int max=cmx(score,n);
int min=cmi(score,n);
printf("%d %d",max,min);
printf("%s %s\n",name[max],num[max]);
printf("%s %s\n",name[min],num[min]);
return 0;
}
```********
看你输入的内容,name和num应该是字符数组,那么for循环输入每个字符时,要用%c,不能用%s,printf也是一样
数字后面加/0
书写好混乱,
要求数组的最大值,那就是唯一的,但自定义的两个函数的输出,不是这样的。
比如,第一个函数,只要数组中的元素大于-1,都要输出,而且输出的是他的位置
用的什么编译器,数组大小可以用变量?
char name[n],num[n];
int score[n];
这三个数组的大小全是变量,这在C里面是不允许的吧。
另外,第32行scanf("%s %s %d\n",&name[i],&num[i],&score[i]);
%s换成%c,%s用来接收字符串,%c用来接收单个字符
第37行和第38行的%s应该也需要换成%c