Am de facut un program in care trebuie sa ordonez alfabetic o lista de nume, cum as putea sa-l scriu?
Utilizator anonim:
in C++
#define MAXLEN 6
void Sort(char *line)
{
int i, is = 1;
char words[MAXWORDS][MAXLEN], tmp[MAXLEN], *p;
for(i = 0; (p = strtok(line, " ")) != NULL; i++) {
strcpy(words[i], p);
line += strlen(p) + 1;
}
while(is) {
is = 0;
for(i = 0; i < MAXWORDS-1; i++)
if(strcmp(words[i], words[i+1]) > 0) {
strcpy(tmp, words[i]);
strcpy(words[i], words[i+1]);
strcpy(words[i+1], tmp);
is = 1;
}
}
for(i = 0; i < MAXWORDS; i++)
printf("%s\n", words[i]);
}
Răspunsuri la întrebare
Răspuns de
1
C++
#include<iostream>
#include<string.h>
#include<algorithm>
using namespace std;
class stu
{
char name[40];
int cgpa;
public:
void assign()
{cin>>name;
cin>>cgpa;
}
void display()
{cout<<name<<endl<<cgpa<<endl;
}
friend void align(stu *s,int v);
};
void align(stu *s,int v)
{for(int j=0;j<v-1;j++)
{for(int i=0;i<v-j-1;i++)
{//buble sort
if(strcmp((s+i)->name,(s+i+1)->name)>0)
{char l[40];
strcpy(l,(s+i)->name);
strcpy((s+i)->name,(s+i+1)->name);
strcpy((s+i+1)->name,l);
//swapping cgpa
int t=(s+i)->cgpa;
(s+i)->cgpa=(s+i+1)->cgpa;
(s+i+1)->cgpa=t;
}
}}}
int main()
{stu s[10];int i;
for(i=0;i<5;i++)
s[i].assign();
align(s,5);
cout<<endl<<endl;
for(i=0;i<5;i++)
s[i].display();
}
Alte întrebări interesante
Studii sociale,
8 ani în urmă
Matematică,
8 ani în urmă
Matematică,
8 ani în urmă
Matematică,
8 ani în urmă
Matematică,
8 ani în urmă
Matematică,
9 ani în urmă
Limba română,
9 ani în urmă
Limba română,
9 ani în urmă