PDA

View Full Version : سوال: میتونید بگید این برنامه ی C چرا Run نمیشه؟



Narges-s
شنبه 30 خرداد 1388, 23:29 عصر
برای فردا صبح حتما میخوامش :ناراحت: میتونید بهم بگید چرا کامل Run نمیشه؟ تو رو خدا بحث آبرو در میونه :ناراحت::افسرده:


:گریه:


برنامه ای بنویسید که برای 10 دانشجو نمره ی 4 درس را دریافت کند، سپس توسط تابعی میانگین معدل کلاس را حساب کرده، نزدیک ترین معدل به میانگین کلاس را در خروجی چاپ کند.


#include<stdio.h>
#include<conio.h>
void Mid(float f[3][4]);
int main()
{
clrscr();
int i;
float m[3][4];
for(i=0;i<3;i++)
{
printf("\nNomreye 0-C daneshjooye %d : ",i);
scanf("%f",&m[i][0]);
printf("Nomreye 1-Delphi daneshjooye %d : ",i);
scanf("%f",&m[i][1]);
printf("Nomreye 2-Paskal daneshjooye %d : ",i);
scanf("%f",&m[i][2]);
printf("Nomreye 3-Asembly daneshjooye %d : ",i);
scanf("%f",&m[i][3]);
}
Mid(m);
getch();
return 0;
}
void Mid(float f[3][4])
{
int i,j,a;
float sum=0,Ave[3],mid=0,t=20,Amid=0,s=0;
for(i=0;i<3;i++)
{
for(j=0;j<4;j++)
Ave[i]+=f[i][j];
Ave[i]=Ave[i]/4.0;
}
for(i=0;i<3;i++)
sum+=Ave[i];
mid=sum/3.0;
for(i=0;i<3;i++)
Amid=mid-Ave[i];
if (Amid<0)
Amid*=-1;
else
Amid*=1;
if (Amid<t)
{
t=Amid;
s=Ave[i];
a=i;
}
printf("nazdiktarin Moadel Be Miangin : %f Ba Shomareye : %d",s,a);

}

erfan_goohooli
یک شنبه 31 خرداد 1388, 02:07 صبح
بازم سلام به شما برنامه نویس عزیز.
الگوریتم برنامه کاملاً درسته اما دو تا اشتباه باعث شده که جواب نده. یکیش توی خط هفتم توی تابعته. یکیش هم توی حلقه for آخر. این برنامه درستشه که کامل run میشه.

#include<stdio.h>
#include<conio.h>
void Mid(float f[3][4]);
int main()
{
clrscr();
int i;
float m[3][4];
for(i=0;i<3;i++)
{
printf("\nNomreye 0-C daneshjooye %d : ",i);
scanf("%f",&m[i][0]);
printf("Nomreye 1-Delphi daneshjooye %d : ",i);
scanf("%f",&m[i][1]);
printf("Nomreye 2-Paskal daneshjooye %d : ",i);
scanf("%f",&m[i][2]);
printf("Nomreye 3-Asembly daneshjooye %d : ",i);
scanf("%f",&m[i][3]);
}
Mid(m);
getch();
return 0;
}
void Mid(float f[3][4])
{
int i,j,a;
float sum=0,Ave[3],mid=0,t=20,Amid=0,s=0;
for(i=0;i<3;i++)
{
for(j=0;j<4;j++)
Ave[i]+=f[i][j];
}
for(i=0;i<3;i++)
Ave[i]/=4.0; //in dastooro too for bala gozashti ke ghalat mishod.
for(i=0;i<3;i++)
sum+=Ave[i];
mid=sum/3.0;
for(i=0;i<3;i++)
{// <== ino nazashte boodi
Amid=mid-Ave[i];
if (Amid<0)
Amid*=-1;
else
Amid*=1;
if (Amid<t)
{
t=Amid;
s=Ave[i];
a=i;
}
}// <== ino nazashte boodi
printf("nazdiktarin Moadel Be Miangin : %f Ba Shomareye : %d",s,a);
}

واسه این که بفهمی چرا برنامه جواب نمیده روی یه کاغذ خودت بهش مقداردهی کن و طبق روال برنامت برو جلو. مطمئن باش مشکلشو پیدا میکنی.:چشمک:

Narges-s
یک شنبه 31 خرداد 1388, 03:11 صبح
سلام آقا عرفان . مرسی . دیگه داشتم نا امید میشدم :ناراحت:

آخه خودم چند وقتی بود C ننوشته بودم، اینا هم پروژه ی چند تا از دوستامه دارم واسشون انجام میدم . خودم هم امتحان دارم مثلا :ناراحت:

خیلی خیلی ممنون . فردا آخرین فرصتشون بود . حالا این سوالا رو باید به 3 نوع مختلف بنویسم :افسرده: که استادشون متوجه نشه . اما خب فقط همین یه دونه مونده بود . اون یکی ها رو کامل کردم .

فکر میکردم دیگه موفق نمیشم . به دادم نرسیده بودی فردا آبروم میرفت. :لبخند:

بازم مرسی . برم کاملشون کنم بعدم برم درس خودم و بخونم :لبخند:

:لبخندساده:

Narges-s
یک شنبه 31 خرداد 1388, 03:40 صبح
ای خدا :عصبانی++: اون سوالی که گفتم چند قسمت داشت. همه ی قسمتاش کار میکرد به جز همونی که از شما پرسیدم. این قسمتی هم که شما اصلاحش کردین تنهایی جواب میده ولی وقتی میذارمشون پیش هم بازم ارور میده :ناراحت: اعصابم و خورد کرده. فکر کنم خیلی گیج شدم :افسرده: تو رو خدا بیاین اشکالش رو بهم بگینننننن :افسرده:



برنامه ای بنویسید که برای 10 دانشجو نمره ی 4 درس را دریافت کند، سپس :
1-توسط تابعی شماره ی افرادی که بالاترین نمره در هر درس آورده اند را چاپ کند.
2-معدل هر شخص را توسط تابعی محاسبه کرده و بالاترین معدل را پیدا کرده و اعلام کند که چه کسانی بالاترین معدل را کسب کرده اند.
3-توسط تابعی میانگین معدل کلاس را حساب کرده، نزدیک ترین معدل به میانگین کلاس را در خروجی چاپ کند.


#include<stdio.h>
#include<conio.h>
void GMax(float f[3][4]);
int AveMax(float f[3][4]);
void Mid(float f[3][4]);
int main()
{
clrscr();
int i,Amax;
float m[3][4];
for(i=0;i<3;i++)
{
printf("\nNomreye 0-C daneshjooye %d : ",i);
scanf("%f",&m[i][0]);
printf("Nomreye 1-Delphi daneshjooye %d : ",i);
scanf("%f",&m[i][1]);
printf("Nomreye 2-Paskal daneshjooye %d : ",i);
scanf("%f",&m[i][2]);
printf("Nomreye 3-Asembly daneshjooye %d : ",i);
scanf("%f",&m[i][3]);
}
GMax(m);
Amax=AveMax(m);
printf("\nbalatarin Moadel %d",Amax);
Mid(m);
getch();
return 0;
}

void GMax(float f[3][4])
{
int b,a,i;
float max=0;
for(b=0;b<4;b++)
{
for(a=0;a<3;a++)
if (f[a][b]>max)
{
max=f[a][b];
i = a;
}
printf("\n balatarin nomre dar darse %d : shomareye %d",b,i);
i = 0;
max = 0;
}
}
int AveMax(float f[3][4])
{
int i,j,a;
float sum=0,ave,Amax=0;
for(i=0;i<3;i++)
{
for(j=0;j<4;j++)
sum+=f[i][j];
ave=sum/4.0;
if (ave>Amax)
{
Amax=ave;
a=i;
}
}
return a;
}
void Mid(float f[3][4])
{
int i,j,a;
float sum=0,Ave[3],mid=0,t=20,Amid=0,s=0;
for(i=0;i<3;i++)
{
for(j=0;j<4;j++)
Ave[i]+=f[i][j];
}
for(i=0;i<3;i++)
Ave[i]/=4.0;
for(i=0;i<3;i++)
sum+=Ave[i];
mid=sum/3.0;
for(i=0;i<3;i++)
{
Amid=mid-Ave[i];
if (Amid<0)
Amid*=-1;
else
Amid*=1;
if (Amid<t)
{
t=Amid;
s=Ave[i];
a=i;
}
}
printf("nazdiktarin Moadel Be Miangin : %f Ba Shomareye : %d",s,a);
}

Narges-s
یک شنبه 31 خرداد 1388, 03:58 صبح
تو رو خدا اینجا رو ببین آقا عرفان :گریه::ناراحت:

erfan_goohooli
یک شنبه 31 خرداد 1388, 04:55 صبح
با عرض معذرت به خاطر دیرکرد:لبخندساده:نرگس جان اشکال برنامه رو پیدا کردم ولی به سختی!!! یه چیز دیگه رو هم به خاطر بسپار: همیشه متغیر ها رو موقع تعریف مقداردهی کن. این هم درستش:

#include<stdio.h>
#include<conio.h>
void GMax(float f[3][4]);
int AveMax(float f[3][4]);
void Mid(float f[3][4]);
int main()
{
clrscr();
int i,Amax;
float m[3][4];
for(i=0;i<3;i++)
{
printf("\nNomreye 0-C daneshjooye %d : ",i);
scanf("%f",&m[i][0]);
printf("Nomreye 1-Delphi daneshjooye %d : ",i);
scanf("%f",&m[i][1]);
printf("Nomreye 2-Paskal daneshjooye %d : ",i);
scanf("%f",&m[i][2]);
printf("Nomreye 3-Asembly daneshjooye %d : ",i);
scanf("%f",&m[i][3]);
}
GMax(m);
Amax=AveMax(m);
printf("\nbalatarin Moadel %d",Amax);
Mid(m);
getch();
return 0;
}

void GMax(float f[3][4])
{
int b,a,i;
float max=0;
for(b=0;b<4;b++)
{
for(a=0;a<3;a++)
if (f[a][b]>max)
{
max=f[a][b];
i = a;
}
printf("\n balatarin nomre dar darse %d : shomareye %d",b,i);
i = 0;
max = 0;
}
}
int AveMax(float f[3][4])
{
int i,j,a;
float sum=0,ave,Amax=0;
for(i=0;i<3;i++)
{
for(j=0;j<4;j++)
sum+=f[i][j];
ave=sum/4.0;
if (ave>Amax)
{
Amax=ave;
a=i;
}
}
return a;
}
void Mid(float f[3][4])
{
int i,j,a;
float sum=0,Ave[3]={0,0,0},mid=0,t=20,Amid=0,s=0;//Meghdar dehi avalie be array
for(i=0;i<3;i++)
{
for(j=0;j<4;j++)
Ave[i]+=f[i][j];
}
for(i=0;i<3;i++)
Ave[i]/=4.0;
for(i=0;i<3;i++)
sum+=Ave[i];
mid=sum/3.0;
for(i=0;i<3;i++)
{
Amid=mid-Ave[i];
if (Amid<0)
Amid*=-1;
else
Amid*=1;
if (Amid<t)
{
t=Amid;
s=Ave[i];
a=i;
}
}
printf("nazdiktarin Moadel Be Miangin : %f Ba Shomareye : %d",s,a);
}

Narges-s
یک شنبه 31 خرداد 1388, 05:02 صبح
نمیدونم چطوری ازتون تشکر کنم . خدا خیلی منو دوست داره که شما الان بیدار بودی :لبخندساده: فکر نمیکردم دوباره بیاین. آخه آفلاین بودین.

من این قوائد ریز C رو فراموش کرده بودم. مرسی به خاطر کمکتون. حالا فردا با خیال راحت میرم دانشگاه :لبخند:

هر روز بیشتر از اینی که هستی موفق باشی. (خدا رو شکر :لبخندساده:)