Перейти к содержанию
СофтФорум - всё о компьютерах и не только

Ошибка в задаче.Язык Си


Рекомендуемые сообщения

Здравствуйте.Помогите пожалуйста.

Вот есть задача.

Создать список, содержащий информацию о пользователях водопровода (поля: фамилия, адрес, задолженность)

Проверить список на наличие клиентов, долг которых превышает некоторый минимум.Вывести их на Эркан и изъять из списка.

Нужно написать на языке Си(Не Си++, а именно Си).

Я вот ввожу например одного человека, пишу долго например 300, а минимальны долг пишу 100, то оно выводит его, так как в задании сказано что нужно вывести у кого долг больше минимального. Но суть проблемы в том:

1.Когда я ввожу двоих или больше человек, то оно постоянно спрашивает минимальный долг(а надо чтобы только раз спросило, и относилось ко всем)

2.Выводит только одного человека(когда ввожу 2 и более то выводит с долгом 1 человека, а их там например 2 таких)

#include<stdio.h>

#include<conio.h>

#include<stdlib.h>

#include<string.h>

typedef struct inform //структура

{

char Familiya[20];

char adres;

int Dolg;

int Min.Dolg;

}Dani;

void AddStruct (Dani * z)

{

printf("Введите Фамилию\n");

scanf("%s", z->Familiya);

printf("Введите Адрес\n");

scanf("%s",&z->adres);

printf("Введите Долг\n");

scanf ("%d",&z->Dolg);

printf ("Введите минимальный долг\n");

scanf("%d",&z->Min.Dolg);

}

void DrukStruct(Dani * z)

{

printf("%s \n",z->Familiya);

printf("%s \n",z->adres);

printf("%d \n",&z->Dolg);

printf("%d \n",&z->Min.Dolg);

}

typedef struct St

{

Dani data;

struct St *next;

}element;

typedef element*ptr;

ptr AddElem(ptr head, Dani elem)

{

ptr x;

x=(element*)malloc(sizeof(element));

x->data=elem;

x->next=head; //

head=x;

return head;

}

void Druk(ptr head)

{

ptr x;

x=head;

while(x!=NULL)

{

DrukStruct(&x->data);

x=x->next;

}

}

ptr Del(ptr head)

{

ptr(x);

while(head!=NULL)

{

x=head;

head=head->next;

free(x);

}

return head;

}

int main()

{

Dani A;

FILE*f;

int l=0;

char filename[10];

puts("Введите имя файла");

gets(filename);

f=fopen(filename,"w+");

if(f==NULL)

{

puts("Файла нету");

exit(1);

}

printf("Введите данные, конец ввода # \n");

AddStruct(&A);

while(strcmp(A.Prizv,"#")!=0)

{

fwrite(&A,sizeof(Dani),1,f);

AddStruct(&A);

}

fclose(f);

f=fopen(filename,"r+");

fread(&A,sizeof(Dani),1,f);

while(!feof(f))

{

DrukStruct(&A);

fread(&A,sizeof(Dani),1,f);

}

fclose(f);

puts("Поиск задолженности");

f=fopen(filename,"r+");

fread(&A,sizeof(Dani),1,f);

ptr head;

head=NULL;

while(!feof(f))

{

if(head==NULL)

head=AddElem(head,A);

else if(A.borg==head->data.Min.Dolg) // <==== Мне кажется что проблема где то здесь

head=AddElem(head,A);

else if(A.borg>head->data.Min.Dolg) // <==== и здесь

{

head=Del(head);

head=AddElem(head,A);

}

fread(&A,sizeof(Dani),1,f);

}

fclose(f);

printf("Вывод списка\n");

Druk(head);

getchar();

return 0;

}

Пожалуйста помогите, на утро сдавать, задача уровня простого, но что то не могу понять ошибку где сделал, как сдам отблагодарю чем попросите, честно выручайте.

Ссылка на комментарий
Поделиться на другие сайты

"else if(A.borg==head->data.Min.Dolg) // <==== Мне кажется что проблема где то здесь "

А почему А.borg ? Разве не А.Dolg

Ах, утром сдавать... сорри

Изменено пользователем Teddy_Bear
Ссылка на комментарий
Поделиться на другие сайты

"else if(A.borg==head->data.Min.Dolg) // <==== Мне кажется что проблема где то здесь "

А почему А.borg ? Разве не А.Dolg

Ах, утром сдавать... сорри

Мне перенесли сдачу))

Помоги пожалуйста.

Ссылка на комментарий
Поделиться на другие сайты

Присоединяйтесь к обсуждению

Вы можете написать сейчас и зарегистрироваться позже. Если у вас есть аккаунт, авторизуйтесь, чтобы опубликовать от имени своего аккаунта.

Гость
Ответить в этой теме...

×   Вставлено с форматированием.   Вставить как обычный текст

  Разрешено использовать не более 75 эмодзи.

×   Ваша ссылка была автоматически встроена.   Отображать как обычную ссылку

×   Ваш предыдущий контент был восстановлен.   Очистить редактор

×   Вы не можете вставлять изображения напрямую. Загружайте или вставляйте изображения по ссылке.

  • Последние посетители   0 пользователей онлайн

    • Ни одного зарегистрированного пользователя не просматривает данную страницу
×
×
  • Создать...