#include<string>
#include<iostream>
#include<string.h>
//#define _CRT_SECURE_NO_WARNINGS
const int MAX = 100;
using namespace std;
struct Sinhvien
{
char MSSV[15];
char HovaTenLot[30];
char Ten[10];
int gioitinh;
int NamSinh;
float DiemTrungBinh;
};
struct Lop
{
int Siso;
char TenLop[10];
int Khoahoc;
Sinhvien DSSV[MAX];
};
struct KHOA
{
int LOP;
Lop DSL[MAX];
};
void Xoa(char s [], int vitrixoa)
{
int n = strlen(s);// do dai dài chuỗi
for (int i = vitrixoa+1; i < n; i++)
{
s[i - 1] = s[i];
}
s[n - 1] = '\0';
}
void tachten(char s[], char ten[])//xoa khoang trang
{
for (int i = 0; ; i++)
{
if (s[i] == ' ')
{
Xoa(s, i);
}
else
{
break;
}
}
}
void Sapxep_ten(KHOA &khoa)
{
for (int i = 1; i <= khoa.LOP; i++)//dieu kien de chay qua tung lop
{
cout << "test 1";
for (int j = 1; j <= khoa.DSL[i].Siso; j++)////dieu kien cua Sinhvien thu 2
for (int k = i+1; k <=khoa.DSL[i].Siso; k++)//dieu kien cua Sinhvien thu 1
{
cout << "test 3";
tachten(khoa.DSL[i].DSSV[k].HovaTenLot, khoa.DSL[i].DSSV[k].Ten);
tachten(khoa.DSL[i].DSSV[j].HovaTenLot, khoa.DSL[i].DSSV[j].Ten);
int check1 = strcmpi(khoa.DSL[i].DSSV[k].Ten , khoa.DSL[i].DSSV[j].Ten);
if (check1>0)
{
Sinhvien temp1;
temp1 = khoa.DSL[i].DSSV[j];
khoa.DSL[i].DSSV[j] = khoa.DSL[i].DSSV[k];
khoa.DSL[i].DSSV[k] = temp1;
}
else if (check1 == 0)
{
int check2 = strcmpi(khoa.DSL[i].DSSV[k].HovaTenLot, khoa.DSL[i].DSSV[j].HovaTenLot);
if (check2>0)
{
Sinhvien temp2;
temp2 = khoa.DSL[i].DSSV[j];
khoa.DSL[i].DSSV[j] = khoa.DSL[i].DSSV[k];
khoa.DSL[i].DSSV[k] = temp2;
}
}
}
}
}
Cho mình hỏi cách giải quyết ạ, mình xuất ra thì tên vẫn nhu cũ hoặc có cách nào so sánh khác không ạ .!!
83% thành viên diễn đàn không hỏi bài tập, còn bạn thì sao?