اولین بار است که به این وب‌سایت می‌آیید. راهنما را مطالعه کنید!
x
موسسه خیریه محک

شهر ریاضی بازی-ریاضی

این برنامه به return 0 ایراد میگیرد

0 امتیاز
53 نمایش
#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;}
    for(int i=0;i<5;i++){
    printf("ave%d=student number:%d \n",i,ave[i],a[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;}
        if(les2[i]>max2){
        andis2=i;}
        if(les3[i]>max3){
        andis3=i;
        max3=les3[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;
        }}}
        for(int i=4;i>=0;i--)
        {
            printf("ave%d=student number:%d \n",i,ave[i],a[i]);}
            printf("max ave=student number:%d \n",ave[4],a[4]);
            getch();
            return 0;
پرسیده شده سه شنبه ۳ بهمن ۱۳۹۱ در C++ توسط soal  
بازتگ شده چهارشنبه ۲۸ فروردین ۱۳۹۲ توسط admin

2 پاسخ

+1 امتیاز

این برنامه‌تون ایراد داره. تعداد { هاش با } هاش برابر نیست. یکی کم داره.
حلقه‌ی زیر رو باز کردین اما نبستین


for(int i=0;i<5;i++){
هیچ پژوهش انسانی نمی‌تواند ادعای علمی بودن داشته باشد، مگر این‌که از برهان ریاضی برخوردار باشد (لئوناردو داوینچی)
پاسخ داده شده سه شنبه ۳ بهمن ۱۳۹۱ توسط prodo  
+1 امتیاز

اگه به خطا‌ها دقت کنین، میبینین که مشکل از اینه که دو تا آکولاد بسته نشده!
یکیشون خیلی واضحه که آکولاد آخر برنامه اصلی هست! (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
پاسخ داده شده سه شنبه ۳ بهمن ۱۳۹۱ توسط CPP_Crawler4