Написать программу для ввода идентификатора, имени и адреса в массив структуры и сортировать их в порядке возрастания на основе имени с использованием указателя?
Я пытался найти так много вопросов вэтот форум, но никто из них точно не помог мне.Так вот мой код:
#include<stdio.h>
struct student
{
char name[20], add[30];
int id;
};
int main()
{
struct student s[100];
struct student *sptr;
int i, j, temp, n;
char tempc[30];
sptr=&s;
printf("How many students do we have to register?");
scanf("%d",&n);
printf("Enter the id, name and address of the students and hit enter.");
for (i=0; i<n; i++)
{
scanf("%d%s%s",&sptr->id,&sptr->name,&sptr->add);
sptr++;
}
sptr=&s;
for(i=0; i<n; i++)
{
for(j=i+1;j<n;j++)
{
if(strcmp(s[i].name,s[j].name)>0)
{
strcpy(tempc,(sptr+i)->name);
strcpy(sptr->name,(sptr+j)->name);
strcpy((sptr+j)->name,tempc);
strcpy(tempc,sptr->add);
strcpy(sptr->add,(sptr+j)->add);
strcpy((sptr+j)->add,tempc);
temp=(sptr+j)->id;
sptr->id=(sptr+j)->id;
(sptr+j)->id=temp;
}
}
}
printf("The sorted form is:");
for (i=0; i<n; i++)
{
printf("%d%s%s",sptr->id,sptr->name,sptr->add);
sptr++;
}
}
Если вы понимаете, куда я иду, пожалуйста, помогите мне.И да, я не хочу использовать какие-либо функции выделения памяти или функцию sizeof ().