#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
2-й максимум: 44
Но когда я изменю свое утверждение "если" на
if(max < arr[i])
{
max2=max;
max=arr[i];
}
Работает отлично!
Макс .: 94
2-й максимум: 56
Ранее я использовал более одной операции в одной строковой инструкции, например
if(xyz) doSomething; break;
Но здесь это не работает, почему?