اگه به خطاها دقت کنین، میبینین که مشکل از اینه که دو تا آکولاد بسته نشده!
یکیشون خیلی واضحه که آکولاد آخر برنامه اصلی هست! (main)
یکی دیگه هم اون وسطا، آکولاد انتهایی یکی از حلقههاست.
من با این روش پیدا کردم کجا فراموش شده آکولاد که اومدم هر جایی که آکولاد بسته شده، کامنت (بصورت //) گذاشتم. پیشنهاد میکنم برای اینجور مواقع که حلقه های زیادی دارین از این روش استفاده کنید.
این هم کد تصحیح شده:
#include<stdio.h>
#include<conio.h>
int main()
{
int a[5],les1[5],les2[5],les3[5],andis1,andis2,andis3,max1,max2,max3;
int temp2;
float ave[5],temp1;
for(int i=0;i<5;i++){
printf("enter student number");
scanf("%d",&a[i]);
printf("enter the number");
scanf("%d",&les1[i]);
scanf("%d",&les2[i]);
scanf("%d",&les3[i]);
ave[i]=(les1[i]*2+les2[i]*3+les3[i]*4)/9;
}// end of for i
for(int i=0;i<5;i++){
printf("ave%d=student number:%d \n",i,ave[i],a[i]);
}// end of for i
max1=les1[0];
max2=les2[0];
max3=les3[0];
for(int i=0;i<5;i++){
if(les1[i]>max1){
max1=les1[i];
andis1=i;
}// end of if
if(les2[i]>max2){
andis2=i;
}//end of if
if(les3[i]>max3){
andis3=i;
max3=les3[i];
}//end of if
}// end of i
printf("\n number of les1 max:%d,\n number of les2 max:%d,\n number of les3 max:%d",a[andis1],a[andis2],a[andis3]);
for(int i=0;i<4;i++)
{
for(int j=i;j<5;j++){
if(ave[i]>ave[j]){
temp1=ave[i];
ave[i]=ave[j];
ave[j]=temp1;
temp2=a[i];
a[i]=a[j];
a[j]=temp2;
}// end of if
}//end of for j
}//end of for i
for(int i=4;i>=0;i--)
{
printf("ave%d=student number:%d \n",i,ave[i],a[i]);
}// end of for i
printf("max ave=student number:%d \n",ave[4],a[4]);
getch();
return 0;
} // end of main