کمک فوری در باره برنامه زیر

max00

New Member
این دو برنامه یه سری اررور دارن که من نمیفهمم چطوری باید حل بشن لطفا کمک کنید.باید کامپایل بشن تا متوجه بشید.


برنامه ای بنویسید اطلاعات 20دانشجو شامل نام فامیلی نمره را گرفته و سپس مشخصات دانشجویی که نمره ان کنتر از 10 شده را چاپ و نمایش دهد.
[CPP] #include<stdio.h>
#include<conio.h>
struct st
{
char name[20];
char family[40];
float mark;
}a[4];
int main()
{
for(int i=0;i<=4;i++)
{

gets(a.name);
printf("\n");

gets(a.family);
printf("\n");

scanf("%f",&a.mark);
printf("\n");

}
for(int i=0;i<=4;i++)

if(a.mark<10)
{
printf("name:\n");
puts(a.name);
printf("family:\n");
puts(a.family);
printf("mark:\n");
printf("%f",a.mark);
}

getch();
}
[/CPP]


برنامه 2

برنامه ای بنویسید اطلاعات 20دانشجو شامل نام فامیلی شماره دانشجوی و معدل را گرفته و سپس مشخصات دانشجویی ها را بر اساس معدل چاپ کند نمایش دهد.

[CPP] #include<stdio.h>
#include<conio.h>
struct
{
char name[20];
char family[40];
int num;
float ave;
}per[20],temp;
int main()
{
for(int i=0;i<20;i++)
{
gets(per.name);
gets(per.family);
scanf("%i",per.num);
scanf("%f",per.ave);
}
int k,s;
{
for(k=0;k<20;k++)

for(s=k+1;s<20;s++);
}
if(avg[k]>avg){
temp=per[k];
per[k]=per;
per=temp;
}
printf("%f %i %c",per[k].avg,per[k].num,per[k].name,per[k].family);
getch();
}
[/CPP]
 

the_king

مدیرکل انجمن
این دو برنامه یه سری اررور دارن که من نمیفهمم چطوری باید حل بشن لطفا کمک کنید.باید کامپایل بشن تا متوجه بشید.

برنامه ای بنویسید اطلاعات 20دانشجو شامل نام فامیلی نمره را گرفته و سپس مشخصات دانشجویی که نمره ان کنتر از 10 شده را چاپ و نمایش دهد.
1) یک آرایه 4 خانه ای گنجایش 4 دانشجو را دارد :
کد:
}a[4];
حلقه ای که شما از 0 الی 4 اجرا می کنید، مشخصات 5 دانشجو را می گیرد، بیشتر از ظرفیت آرایه 4 خانه ای :
کد:
for(int i=0;i<=4;i++)
اگر می خواهید مشخصات 4 دانشجو را دریافت کنید، در حلقه for بجای i <= 4 از i < 4 استفاده کنید، یعنی 0 الی 3
کد:
for(int i=0;i<4;i++)

2) بعد از دستورات scanf دستور fflush فراموش نشود :
کد:
        scanf("%f",&a[i].mark);
        fflush(stdin);
برای این fflush و دلیل استفاده اش رجوع شود به :
سواللللل : )
مشکل با تابع cin.getline
دریافت رشته با scanf بدون فاصله

3) حتما int main و هر تابع مشابه رو با یک return تمام کنید، ارسال مقدار بازگشتی 0 رو در انتهای کد فراموش نکنید :
کد:
    getch();
    return 0;
}

کد:
#include<stdio.h>
#include<conio.h>

struct st
{
    char name[20];
    char family[40];
    float mark;
}a[20];

int main()
{
    for (int i = 0; i < 20; i++)
    {
        printf("name :");
        gets(a[i].name);
        printf("\n");

        printf("family :");
        gets(a[i].family);
        printf("\n");

        printf("mark :");
        scanf("%f",&a[i].mark);
        fflush(stdin);
        printf("\n");

    }
    for(int i=0;i < 20;i++)
    {
        if(a[i].mark < 10)
        {
            printf("name:\n");
            puts(a[i].name);
            printf("family:\n");
            puts(a[i].family);
            printf("mark:\n");
            printf("%f",a[i].mark);
        }
    }
    getch();
    return 0;
}

برنامه 2

برنامه ای بنویسید اطلاعات 20دانشجو شامل نام فامیلی شماره دانشجوی و معدل را گرفته و سپس مشخصات دانشجویی ها را بر اساس معدل چاپ کند نمایش دهد.

1) موقع دریافت کردن اعداد با scanf ، درج کردن کاراکتر & قبل از اسم متغیر و fflush بعد از آنها فراموش نشود :
کد:
 scanf("%i",per[i].num);
 scanf("%f",per[i].ave);
کد:
 scanf("%i",&per[i].num);
 scanf("%f",&per[i].ave);
        fflush(stdin);

2) شما باید بجای مقایسه [avg[k]>avg[s ، مقایسه per[k].avg > per.avg را انجام دهید :
کد:
            if(per[k].avg > per[s].avg)

3) تعداد پارامتر هایی که چاپ می کنید، چهار تا است، اما صرفا سه تا f %i %c% مشخص کرده اید، در ضمن c% برای یک کاراکتر است، نه رشته :
کد:
 printf("%f %i %c",per[k].avg,per[k].num,per[k].name,per[k].family);
کد:
        printf("%f %i %s %s \n", per[k].avg, per[k].num, per[k].name, per[k].family);

کد:
#include <stdio.h>
#include <conio.h>

struct
{
    char name[20];
    char family[40];
    int num;
    float avg;
}per[20],temp;

int main()
{
    for(int i = 0; i < 20; i++)
    {
        printf("name :");
        gets(per[i].name);
        printf("family :");
        gets(per[i].family);
        printf("num :");
        scanf("%i",&per[i].num);
        printf("avg :");
        scanf("%f",&per[i].avg);
        fflush(stdin);
    }
    int k,s;
    for(k = 0; k < 20; k++)
    {
        for(s = k + 1; s < 20; s++)
            if(per[k].avg > per[s].avg)
            {
                temp = per[k];
                per[k] = per[s];
                per[s] = temp;
            }
        printf("%f %i %s %s \n", per[k].avg, per[k].num, per[k].name, per[k].family);
    }
    getch();
    return 0;
}
 

max00

New Member
سلام ممنون از کمک تان درست شد برنامه به امید سر بلندی شما و دوستانتان.
 

جدیدترین ارسال ها

بالا