السلام عليكم ورحمة الله وبركاته
ارجو المساعدة ياخوان والله حاولت فيه بشتى الطرق لكن مافيه فايده
#include <stdio.h>
#include <stdlib.h>
#define MAX_STUD 5
long getNos(void);
int getTotal(void);
long getID(void);
long getIC(void);
double getPoint(double);
int getCH(void);
double getGP(void);
//double getGPA(int,double);
//void sortGPA(double[],int[][2],int);
int hours;
double points;
void main(void)
{
int i,j,total,nos;
long int idarray[MAX_STUD][2];
double gparray[MAX_STUD],totalpoint,mark,hours;
nos = getNos();
hours=getGP();
printf("%f",hours);
for (i=0;i<nos;i++)//student looping
{
idarray[0] = getID();
idarray[1] = getIC();
total = getTotal();
points=0;
hours=0;
for (j=0;j<total;j++)//subject looping
{
points+=getGP();
}
// gparray=getGPA(hours);
// printf("\nthe GPA is %f",gparray);
}
}
long getNos(void)
{
long x;
printf("\nEnter the number of students in the class: ");
scanf("%ld",&x);
return x;
}
int getTotal(void)
{
int x;
printf("\nEnter the total subject(s) taken: ");
scanf("%d",&x);
return x;
}
long getID(void)
{
long x;
printf("\nEnter student ID: ");
scanf("%ld",&x);
return x;
}
long getIC(void)
{
long x;
printf("\nEnter student IC: ");
scanf("%ld",&x);
return x;
}
double getPoint(double mark)
{
if (mark>=85)
return 4.00;
else
if (mark>=80)
return 3.75;
else
if (mark>=75)
return 3.33;
else
if (mark>=70)
return 3.00;
else
if (mark>=65)
return 2.75;
else
if (mark>=60)
return 2.33;
else
if (mark>=55)
return 2.00;
else
if (mark>=50)
return 1.75;
else
if (mark>=45)
return 1.33;
else
if (mark>=40)
return 1.00;
else
return 0;
}
int getCH(void)
{
int x,value;
char sub[7],str[2];
printf("Enter Subject Code: ");
scanf("%s",⊂);
str[0]=sub[6];
value = atoi(str);
hours+=value;
return value;
}
double getGP(void)
{
int credit;
double mark,x;
char new_line;
credit=getCH();
scanf("%c", &new_line);
printf("Mark :");
scanf("%lf",&mark);
x=getPoint(mark)*credit;
points+=x;
return x;
}
/*double getGPA(int hours)
{
return 0;
}
void sortGPA(double[],int[][2],int total)
{
return 0;
}*/وجزاكم الله خير