هذا حل المسألة كاملة وذلك باستخدام تابع لفرز
كود PHP:
#include<iostream.h>
struct student
{
int id ;
char name[10] ;
char holdm[10] ;
int mark ;
};
void organize( student std[] , int n ) ;
main()
{
student std[100] ;
int n ;
cout << "Enter the number of student less than 100" << endl;
cin >> n ;
for ( int i = 0 ; i < n ; i++ )
{
cout << "Enter student id" << endl ;
cin >> std[i].id ;
cout << "Enter student name" << endl ;
cin >> std[i].name ;
cout << "Enter student mark" << endl ;
cin >> std[i].mark ;
cout << endl ;
}
organize ( std , n) ;
for (i = 0 ; i < n ; i++ )
{
cout << "Student id" << endl ;
cout << std[i].id << endl ;
cout << "Student name" << endl ;
cout << std[i].name << endl ;
cout << "Student mark" << endl ;
cout << std[i].mark << endl ;
cout << endl ;
}
return 0 ;
}
void organize( student std[] , int n )
{
for(int i = 0 ; i < n ; i++)
{
for(int j = 1 + i ; j < n ; j++)
if( std[i].mark < std[j].mark )
{
int heldm , heldi ;
heldm = std[i].mark ;
std[i].mark = std[j].mark ;
std[j].mark = heldm ;
heldi = std[i].id ;
std[i].id = std[j].id ;
std[j].id = heldi ;
for ( int k = 0 ; k < 10 ; k++ )
{
std[i].holdm[k] = std[i].name[k] ;
std[i].name[k] = std[j].name[k] ;
std[j].name[k] = std[0].holdm[k] ;
}
}
}
}