Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > C/C++: Общие вопросы > Сортировка массива структур вставками


Автор: AlexeySheglov 11.5.2009, 18:27
Код

#include <stdio.h>
#include <string.h>

int main(){
int i,j,t;
char c[20];
const int k=4;
struct gorod{
        char g[20];
        long int n;
} ga[k];
printf("Vvod:");
for (i=0; i<k; i++){
    scanf("%s %d", ga[i].g, &ga[i].n);
}
for (i = 1; i < k; i++) {
    t = ga[i].n;
    strcpy(c, ga[i].g);
    for (j = i - 1; j >= 0; j--) {
        if (ga[j].n < t) {
            break;
        }
        ga[j+1].n = ga[j].n;
        strcpy(ga[j+1].g, c);
    }
    ga[j+1].n = t;
    strcpy(ga[j+1].g, c);
}

printf("\n\nVasch massiv struktur: \n\n");
for (i=0; i<k; i++){
    printf("%s %d\n\n", ga[i].g, ga[i].n);
}
getchar();
getchar();
return 0;
}



Добавлено @ 18:29
Заполнение массива структур с клавиатуры,
сортировка вставками,
вывод структур.
Посмотрите пож, кто понимает.
Компилируется нормально, но с 4-мя предупреждениями,
при выводе структур Численные сортируются нормально, а вот строки названий городов нет: выводится во всех строках тко название города с Min населением.

Автор: Dov 12.5.2009, 09:49
Во внутреннем цикле замени 
Код
strcpy(ga[j+1].g, c);

на 
Код
strcpy(ga[j+1].g, ga[j].g);

Автор: AlexeySheglov 14.5.2009, 18:31
огромное спасибо!

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)