PDA

View Full Version : سوال: هنگ کردن برنامه بعد از گرفتن یک عدد



irwebnews
پنج شنبه 28 اردیبهشت 1391, 15:12 عصر
سلام
من یک برنامه به زبان C نوشتم برای این کار:
برای 20 دانشجو 5 نمره دریافت کنه و معدل هر دانشجو رو حساب کنه و معدل کل دانشجوها رو هم حساب کنه
با فرض اینه هر درس 1 واحدی هست
خطای سینتکس نداره. در مورد اجراش هم باید بگم که برنامه اجرا میشه و وقتی اولین نمره دانشجو1 رو میگیره ، برنامه هنگ میکنه و کامپیلر یه خطاهایی که ظاهرا مربوط به cpu هست رو نشون میده.
کامپیلر من borland c++ v5.02 هست.


#include<stdio.h>
#include<conio.h>
int ave(int[]);
void main()
{
const int n=4;
int i,j,aveall=0,les[n];
printf("\n for getting 5 score for 20 student");
for(i=1;i<=20;i++)
{
printf("\n enter a number for number %d student",i);
for(j=0;j<=n;j++)
{
printf("\n enter a socre of lesson %d=",j+1);
scanf("%d",les[j]);
}
ave(les);
aveall=aveall+ave(les);
}
aveall=(float)aveall/2;
printf("\n average all of student=%d",aveall);
getch();
}
//////*****
int ave(int ave2[])
{
int i=0,j=1,temp=0;
while(i<5)
{
temp=ave2[i]+temp;
i++;
j++;
}
temp=temp/2;
printf("average of student%d is=%d",j,temp);
return temp;
}

irwebnews
پنج شنبه 28 اردیبهشت 1391, 17:31 عصر
اشکال پیدا شد ! خاک تو سرم :))
خط 15 برای scanf ننوشتم &
چقدر ....!

irwebnews
پنج شنبه 28 اردیبهشت 1391, 18:48 عصر
اینم برنامه کامل و بدون اشکال:






#include<stdio.h>
#include<conio.h>
float ave(float[]);
void main()
{
const int n=4;
const int m=20;
int i,j;
float aveall=0,les[n],sum;
printf("\n for getting 5 score for 20 students");
for(i=1;i<=m;i++)
{
printf("\n enter a number for number %d student",i);
for(j=0;j<=n;j++)
{
printf("\n enter a socre of lesson %d=",j+1);
scanf("%f",&les[j]);
}
sum=ave(les);
aveall=sum+aveall;
}
aveall=(float)aveall/2;
printf("\n average all of students=%f",aveall);
getch();
}
//////*****
float ave(float ave2[])
{
int i=0;
float temp=0;
while(i<5)
{
temp=ave2[i]+temp;

i++;
}
temp=(float)temp/2;
printf("\n average of student is=%f",temp);
printf("\n *****next student*****");
return temp;
}