代码可以运行,但是输入进去,没有输出

img


#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