题目描述
输入一个整数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;//
}追问
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);
}追问
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;//
}追问
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语句有什么问题,怎么改