C语言数组输出最大值

img


#include<stdio.h>
int Max(int m,int n);
int main()
{
int n,T;
int max;
int a[n],b[T],c[T];
scanf("%d %d",&n,&T);
int i;
if(n>=1&&n<=20)
{
for(i=0;i<n;i++)
{
scanf("%d",&a[i]);
} }
if(T>=1&&T<=10)
{
for(i=0;i<T;i++)
{
scanf("%d %d",&b[i],&c[i]);
}
for(i=0;i<T;i++)
{
if(b[i]>=c[i])
{
max=b[i];
}
else{
max=c[i];
}
printf("%d\n",max);
}
}
return 0;
}
哪里错了??PTA

img


救急!!!!

scanf("%d%d",&n,&T);
scanf("%d%d",&b[i],&c[i]);
%d之间不要留空格。

n和T应该先输入,再定义数组吧。否则怎么知道该建多大的数组


#include<bits/stdc++.h>
using namespace std;
int main(){
    int n,m,sz[10001],a[101];
    cin>>n>>m;
    for(int i=0 ;  i<n ; i++){
         cin>>sz[i];
    }
    for(int i=0 ; i<m ; i++){
         int x,y,cnt=0;
         cin>>x>>y;
         for(int i=x-1 ; i<y ; i++){
              a[cnt++]=sz[i];
         }
         sort(a,a+y-x);
         cout<<a[y-1]<<endl;
    }
}

亲测卡bug,思路在这,不知c语言是否有sort排序
#望采纳