解决这个问题:
输入一个整数n和n个整数,输出这n个整数的最大值。
输入
输入有两行:第一行是一个正整数n,第二行是n个整数。
输出
输出包含一个整数,即n个数中的最大值,单独占一行。
样例输入 Copy
4
3 7 5 6
样例输出 Copy
7
我写了这段代码:
#include
int main()
{
int i;
int n;
scanf("%d", &n);
int max=0;
int num;
for (i = 0; i < n; i++)
{
scanf("%d", &num);
if (i == 0)
{
max = num;
}
if(maxprintf("%d", max);
return 0;
}
第二行的数据为什么用空格隔开就能跑成功呢?
然后我又用回车一个数据占一行,同样也可以跑才成功。
如果按照第一种的情况,那么循环是怎么进行的(空格就能让循环进行依次吗?)
对于整型数据的输入,scanf默认的分隔符为所有空白字符(空格、回车和table都属于空白字符)
for循环里输入一个整型数据+空格表示当前这次循环输入完成,会执行下面的if,判断结束接着下一次循环,再输入。
详细了解下scanf()函数的用法,供参考:https://baike.baidu.com/item/scanf/10773316?fr=aladdin
scanf()判定输入是否结束一共就两种情况
第一,遇到分隔符空格、回车、制表的时候,默认结束输入,分隔符个数不限;
第二,通过格式控制结束输入,比如scanf("%d,%d,%d",&a,&b,&b);当输入123,456,789是,a=123,b=456,c=789。