Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > C/C++ программирование > Общие вопросы C/C++
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 05.01.2014, 15:10   #1
anshelika
 
Регистрация: 03.01.2014
Сообщений: 6
Восклицание не получается сортировка

Здравствуйте.
Необходимо создать два массива структур а и в, содержащих сведения о студентах(ФИО, №группы, изучаемые дисциплины, успеваемость). Массив а отсортировать по ФИО, а массив в по успеваемости... вывести полученные данные на экран.

В чем ошибка данного кода? помогите с сортировкой, пожалуйсто


Код С:
Код:
#include <stdio.h>
 
const int n=10;
int size=0, razm=0;
 
typedef struct a{
    char FIO[2];
    int Numbgr;
    char Disc[5];
    int Ocen[5];
}strA;
 
strA masA[100];
 
typedef struct b{
    char FIO[2];
    int Numbgr;
    char Disc[5];
    int Ocen[5];
}strB;
 
strB masB[100];
 
void vvodA(int size){
    int j, j;
    printf("Vvedite svedeniya o studentax gruppy A\n\n");
for(j=0; j<size; j++)
    printf("Vvedite FIO\n");
printf("Vvedite familiyu  ");
scanf("%s\n", &masA[j].FIO[0]);
printf("Vvedite inicialy  ");
scanf("%s\n", &masA[j].FIO[1]);
printf("vvedite nomer gruppy: ");
scanf("%d\n", &masA[j].Numbgr);
printf("Vvedite izu4aemye discipliny i ocenki po disciplinam:\n");
for(int i=0; i<5; i++)
{scanf("%s", &masA[j].Disc[i]);
scanf("%d\n", &masA[j].Ocen[i]);
}
}
 
void vvodB(int size){
    int j;
    printf("vvedite svedeniya o studentax gruppy B\n\n");
for(j=0; j<size; j++)
    printf("Vvedite FIO\n");
printf("Vvedite familiyu  ");
scanf("%s\n", &masB[j].FIO[0]);
printf("Vvedite inicialy  ");
scanf("%s\n", &masB[j].FIO[1]);
printf("vvedite nomer gruppy: ");
scanf("%d\n", &masB[j].Numbgr);
printf("Vvedite izu4aemye discipliny i ocenki po disciplinam:\n");
for(int i=0; i<5; i++)
{scanf("%s", &masA[j].Disc[i]);
scanf("%d\n", &masA[j].Ocen[i]);
}
}
 
// сортировка по фамилии
void sortfam(int size){
    char temp;
int i, j, poz;
for(i=0; i<size; ++i);
{
poz=i;
temp=masA[i].FIO[0];
for(j=i+1; j<size; ++j)
{
    if(masA[j].FIO[0]<temp)
    {poz=j;
    temp=masA[j].FIO[0];}
}
masA[poz].FIO[0]=masA[i].FIO[0];
masA[i].FIO[0]=temp;
}
}
 
void vyvod(int size)
{
    for(int i=0; i<size; i++)
    {
    printf("FIO: %s  %s\n", masA[i].FIO[0], masA[i].FIO[1]);
    printf("Nomer gruppy: %d\n", masA[i].Numbgr);
    printf("Discipliny i ocenki:\n");
    for(int j=0; j<5; j++)
    {printf("%s -- %d\n", masA[i].Disc[j], masA[i].Ocen[j]);}
    }
}
 
int main (void)
{
printf("Skolko u4asch4ixsja v gruppe A?");
scanf("%d", &size);
printf("Skolko u4asch4ixsja v gruppe B?");
scanf("%d", &razm);
vvodA(size);
vvodB(razm);
sortfam(size);
vyvod(size);
}

Последний раз редактировалось anshelika; 05.01.2014 в 15:13.
anshelika вне форума Ответить с цитированием
Старый 05.01.2014, 15:47   #2
Son Of Pain
Участник клуба
 
Регистрация: 23.12.2010
Сообщений: 1,129
По умолчанию

Зачем две одинаковые структуры определять отдельно?

Зачем
Код:
int j, j;
?

Код:
char FIO[2];
- это массив из двух символов, а не строк. Должно быть
Код:
char *FIO[2];
, видимо; в остальных местах так же.

Код:
for(j=0; j<size; j++)
printf("Vvedite FIO\n");
- как насчет фигурных скобок здесь? И не только здесь? )

Почему обе функции ввода записывают часть данных в первый массив?

Зачем точка с запятой здесь
Код:
for(i=0; i<size; ++i);
?

Почему процедура сортировки переставляет только одно поле структуры, и то не целиком?

Dalshe u menya vytekli glaza ot takih klassnyh imen peremennyh, i ya ushel lechitsya (
Son Of Pain вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
С++ сортировка в текстовом файле. (Задание на курсовик никак не получается) Evg888 Помощь студентам 1 02.06.2012 19:37
Сортировка, не получается... Destinystar3422 Общие вопросы C/C++ 7 11.06.2011 20:25
не получается сортировка матрицы в чем ошибка? Darki Паскаль, Turbo Pascal, PascalABC.NET 5 23.06.2010 00:26
структуры. не получается сортировка. grewnica Общие вопросы C/C++ 2 12.05.2009 14:49
не получается сортировка кто знает помогите Droid Общие вопросы Delphi 5 23.05.2008 07:28