单行语句
Single line statements
#include<stdio.h>
#include<stdlib.h>
int main()
{
int i,max,max2;
int arr[10];
for(i=0;i<10;i++) arr[i]=rand()%101;
for(i=0;i<10;i++) printf("%d\n",arr[i]);
max=arr[0];
for(i=0;i<10;i++)
{
if(max < arr[i]) max2=max; max=arr[i];
}
printf("Max is : %d\n",max);
printf("2nd max is : %d",max2);
}
输出:
32
32
54
12
52
56
8个
30
44
94
最大值为:94
第二个最大值是:44
但是当我将 'if' 语句更改为
if(max < arr[i])
{
max2=max;
max=arr[i];
}
工作正常!
最大值为:94
第二个最大值是:56
我以前在一行语句中使用过多个操作,例如
if(xyz) doSomething; break;
但是在这里不起作用,为什么?
C 中没有“单行语句”这样的东西,因为 C 不关心换行。它们仅用于帮助 reader 阅读。
这个
if(max < arr[i]) max2=max; max=arr[i];
等同于
if(max < arr[i])
max2=max;
max=arr[i];
等同于
if(max < arr[i])
{
max2=max;
}
max=arr[i];
#include<stdio.h>
#include<stdlib.h>
int main()
{
int i,max,max2;
int arr[10];
for(i=0;i<10;i++) arr[i]=rand()%101;
for(i=0;i<10;i++) printf("%d\n",arr[i]);
max=arr[0];
for(i=0;i<10;i++)
{
if(max < arr[i]) max2=max; max=arr[i];
}
printf("Max is : %d\n",max);
printf("2nd max is : %d",max2);
}
输出: 32 32 54 12 52 56 8个 30 44 94
最大值为:94
第二个最大值是:44
但是当我将 'if' 语句更改为
if(max < arr[i])
{
max2=max;
max=arr[i];
}
工作正常!
最大值为:94
第二个最大值是:56
我以前在一行语句中使用过多个操作,例如
if(xyz) doSomething; break;
但是在这里不起作用,为什么?
C 中没有“单行语句”这样的东西,因为 C 不关心换行。它们仅用于帮助 reader 阅读。
这个
if(max < arr[i]) max2=max; max=arr[i];
等同于
if(max < arr[i])
max2=max;
max=arr[i];
等同于
if(max < arr[i])
{
max2=max;
}
max=arr[i];