Informatică, întrebare adresată de Utilizator anonim, 8 ani în urmă

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++
grigore2018: #define MAXWORDS 3
#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]);
}
grigore2018: Sau

Răspunsuri la întrebare

Răspuns de grigore2018
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