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

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

Вернуться   Форум программистов > IT форум > Помощь студентам
Регистрация

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 04.05.2015, 17:46   #1
Sterben
Форумчанин
 
Аватар для Sterben
 
Регистрация: 01.03.2015
Сообщений: 118
По умолчанию Сортировка структуры (С) где ошибка?

Код:
#include <conio.h>
#include <string.h>
#include <stdio.h>
#include <stdlib.h>
struct List{
int year;
char pol;
char lastname[60];
};
int main()
{
    int i=0,j,year1=1998,n=7,year2;
    List *SPQR;
    char *temp;
    temp = (char*)malloc(60*sizeof(char));
    SPQR=(List*)malloc(n*sizeof(List));
    FILE* fl=fopen("1.txt","r");
    for(;!feof(fl);++i){
        fscanf(fl,"%s",SPQR[i].lastname);
        fscanf(fl,"%d",&SPQR[i].year);
        SPQR[i].pol=getc(fl);
        getc(fl);
}
fclose(fl);
printf("info about list <<SPQR>>\n\n");
printf("lastname\tyear\tpol\n");
for(i=0;i<n;++i){
printf("%s\t\t%d\t%c\n",SPQR[i].lastname,SPQR[i].year,SPQR[i].pol);
}
printf("people why have 17 year old");
for(i=0;i<n;++i){
        year2=year1-SPQR[i].year;
       if(year2>=17)
       printf("\n%s\t%c\t%d",SPQR[i].lastname,SPQR[i].pol,SPQR[i].year);
}
printf("\nman why have <20\n");
for(i=0;i<n;++i){
        year2=year1-SPQR[i].year;
        if(SPQR[i].pol=='m'&&year2<20)
        printf("\n%s\t%d",SPQR[i].lastname,SPQR[i].year);
}
        printf("\nOt 20-29 old");
        for(i=0;i<n;++i){
        year2=year1-SPQR[i].year;
        if(SPQR[i].pol=='m'&&year2>=20&&year2<29)
            printf("\n%s\t%d",SPQR[i].lastname,SPQR[i].year);
}
printf("\nsort last name woman");
for(i=0;i<n-1;++i){
        for(j=i;j<n;i++){
   if(strcmp(SPQR[i].lastname,SPQR[j].lastname)<0)
   {
        strcpy(temp,SPQR[i].lastname);
        strcpy(SPQR[i].lastname,SPQR[j].lastname);
        strcpy(SPQR[j].lastname,temp);
   }
}
}

   for(i=0;i<n;++i)
    printf("\n%s",SPQR[i].lastname);
}
в файле Фамилия год и пол,что не правильно сортировке?
Sterben вне форума Ответить с цитированием
Старый 04.05.2015, 17:56   #2
BDA
МегаМодератор
СуперМодератор
 
Аватар для BDA
 
Регистрация: 09.11.2010
Сообщений: 7,318
По умолчанию

Код:
for (i = 0; i < n - 1; ++i) {
    for (j = i + 1; j < n; ++j)
...
Пишите язык программирования - это форум программистов, а не экстрасенсов. (<= это подпись )
BDA вне форума Ответить с цитированием
Старый 04.05.2015, 18:15   #3
Sterben
Форумчанин
 
Аватар для Sterben
 
Регистрация: 01.03.2015
Сообщений: 118
По умолчанию

а что я не так сделал что оно компилировать не хочет ?
Sterben вне форума Ответить с цитированием
Старый 04.05.2015, 18:42   #4
BDA
МегаМодератор
СуперМодератор
 
Аватар для BDA
 
Регистрация: 09.11.2010
Сообщений: 7,318
По умолчанию

Код:
typedef struct {
    int year;
    char pol;
    char lastname[60];
} List;
Пишите язык программирования - это форум программистов, а не экстрасенсов. (<= это подпись )
BDA вне форума Ответить с цитированием
Старый 04.05.2015, 22:24   #5
Sterben
Форумчанин
 
Аватар для Sterben
 
Регистрация: 01.03.2015
Сообщений: 118
По умолчанию

Спасибо,не видел что написал i++ в for
Sterben вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
спасите, добрые люди, пожаааааалуйста:3 где-то в коде закралась ошибка, потому что выводит левые числа, а где, понятия не имею:с typayababa Помощь студентам 9 19.11.2017 11:48
Сортировка Структуры Chainik! Общие вопросы C/C++ 7 29.09.2013 21:05
Быстрая сортировка. Где-то ошибка jeeeezy Помощь студентам 0 10.12.2011 00:57
написал программу, где то ошибка, не пойму где... Kelevra91 Общие вопросы C/C++ 5 17.01.2011 16:38