c语言,输入一个整数n和n个整数,输出这n个整数的最大值

题目描述

输入一个整数n和n个整数,输出这n个整数的最大值。

输入

输入有两行:第一行是一个正整数n,第二行是n个整数。

输出

输出包含一个整数,即n个数中的最大值,单独占一行。

样例输入

4 3 7 5 6

样例输出

7
这是我的一道作业题,我是这样写的:
#include<stdio.h>
int main()
{
int n,a,i,t;
scanf("%d",&n);
for(i=1;i<=n;i++)
{
scanf("%d",&a);
if(t<a) t=a;
}
printf("%d\n",t);
}
但是提交上去,网站检测运行之后报错了,希望大家帮忙看看!

#include<stdio.h>
int main()
{
int n,a,i,t;
scanf("%d",&n);
scanf("%d",&t); //先读的第一个数要默认成最大的,不然,t的初值是不定的
for(i=1;i<n;i++) //循环中再读n-1个数
{
scanf("%d",&a);
if(t<a) t=a;
}
printf("%d\n",t);
return 0;//
}

追问

谢谢,你说的对!

追答

解决问题就好,不客气

温馨提示:答案为网友推荐,仅供参考
第1个回答  2014-11-21
#include<stdio.h>
int main()
{
int n,a,i,t;
scanf("%d",&n);
for(i=1;i<=n;i++)
{
scanf("%d",&a);
if(t<a) t=a;/*t没有初值 应该把t的初值设置为第一个数的值*/
}
printf("%d\n",t);
}

追问

不知道怎么把第一个数的值赋给t,求解答?

追答

楼下已经解答 不过再加个判断最好

#include<stdio.h>
int main()
{
    int n,a,i,t;
    scanf("%d",&n);
    if(n <= 0)
    {
        printf("输入n的值错误\n");
        return 0;
    }
    scanf("%d",&t); //先读的第一个数要默认成最大的,不然,t的初值是不定的
    for(i=1;i<n;i++) //循环中再读n-1个数
    {
        scanf("%d",&a);
        if(t<a) t=a;
    }
    printf("%d\n",t);
    return 0;//
}

追问

非常感谢

第2个回答  2014-11-21
局部变量t没有初始化,是一个随机值,不可能和a进行比较。需要先进性初始化为0。
第3个回答  2014-11-21
if语句有问题追问

if语句有什么问题,怎么改

相似回答