#include <iostream>
using namespace std;
const int NUM_STUDENT=5;
struct Students
{
char f_name[32];
char l_name[32];
int age;
int group;
};
Students st[NUM_STUDENT];
void InitStudent(int i);
void DisplayStudent(int i);
void SortStudent();
int main()
{
int i;
for (i=0;i<NUM_STUDENT;i++)InitStudent(i);
return 0;
}
void InitStudent(int i)
{
cout<<"Please,enter a first name >";
cin>>st.f_name;
cout<<"Please,enter a second name >";
cin>>st.l_name;
cout<<"Please,enter age >";
cin>>st.age;
cout<<"Please,enter a number of group >";
cin>>st.group;
}
void DisplayStudent(int i)
{
cout<<st.f_name<<" "<<st.l_name<<" "<<st.age<<" "<<st.group<<endl;
}
void SortStudent()
{
Students temp;
int i,j;
for (i=0;i<NUM_STUDENT;i++)
{
j=i+1;
if (j>=NUM_STUDENT)break;
for (;j<NUM_STUDENT;j++)
{
if (strcmp(st.f_name,st[j].f_name))
{
//меняем местами i с j
}
}
}
}
{С++ билдер}Структуры(консольное приложение)
Помогите пожалуйста решить такую задачу.
...
struct
{
char FIO[50];
char age;
int group;
...
}stud;
....
{
stud *a;
int num_st; //кол-во студентов
cout<<"Enter number of students";
cin>>num_st;
a=new stud [num_st];
for(i=0;i<num_st;i++)
{
cin>>a->FIO;
cin>>a->age;
cin>>a->group;
...
}
}
....
Насчет сортировки - надо подумать, если нет стандартных билдеровских, то я так думаю рекурсивную функцию надо сварганить, которая сравнивала бы 2 первые буквы, если они одинаковые, вызывала бы сама себя для сравнения вторых букв и т.д., и уже потом возвращала бы значение 1/0 (что "первее", первый или второй параметр) и эту функцию вызывать, немного изменив скажем пузырьковый метод сортировки массива. А вообще бы я посоветовал бы в c++ это все в виде класса оформить, а не структурой.
Расскрой пожалуйста многоточие.А то я вообще в этом деле новичок.
Код:
сортировку надо доделать,вообще здесь помоему прсто strcmp и все,если не ноль то переставляем местами,если ноль оставляем как есть.
Цитата: BroKeR
сортировку надо доделать,вообще здесь помоему прсто strcmp и все,если не ноль то переставляем местами,если ноль оставляем как есть.
strcmp только сравнивает строки на полное равенство, здесь не годится.
Цитата:
Расскрой пожалуйста многоточие.А то я вообще в этом деле новичок.
Гм, батенька, времени уже особо нет, обеденный перерыв на работе не резиновый. А спрашивать как написать программу я бы посоветовал имея хоть минимальные знания о программировании. Люди здесь всетаки свое время тратят, а тратить на того, кому программирование до фени, лишь бы просто сдать работу на оценку приличную и забыть, как то немного некатит.
ну так нам это и надо,там же идет лексеграфическое сравнение.
Спасибо твои замечания я учту.:)