Технический форум
Вернуться   Технический форум > Программирование > Форум программистов > C/C++/С#


Ответ
 
Опции темы Опции просмотра
Старый 07.06.2016, 16:06   #1 (permalink)
кира2015
Новичок
 
Регистрация: 07.06.2016
Сообщений: 1
Сказал(а) спасибо: 0
Поблагодарили 0 раз(а) в 0 сообщениях
Репутация: 10
По умолчанию Программа С++. Списки

помогите пожалуйста написать программу. не знаю что еще добавить. даны 2 списка. Создать новый список - пересечение двух этих списков
#include <stdio.h>
#include <conio.h>
#include <string.h>
#include <iostream>
#include <windows.h>
using namespace std;
struct student
{
char fio[50];
int stipendia;
student* next;
};
typedef student* ptr;
ptr head3=new ptr;

void vvod(student &stud)
{
printf("ФИО: "); scanf("%s",&stud.fio);
printf("Размер стипендии: "); scanf("%d",&stud.stipendia);
}
int formspisok(ptr *head)
{
ptr p;
char let;
*head=NULL;
do
{
printf("Продолжить:д-да, н-нет\n");
let=_getch();
if(let=='н')return 1;
if(*head==NULL)
{
*head=new student;
p=*head;
}
else
{
p->next=new student;
p=p->next;
};
vvod(*p);
p->next=NULL;
}
while(1);
}


bool Find (ptr &head, ptr p)
{ bool flag=false;

ptr q = head;
while (q)
{
if(!strcmp(p->fio,q->fio)&& p->stipendia==q->stipendia)
{
flag=true;
break;
}

}
return flag;
}

void pechspisok(ptr head)
{
ptr p;
p=head;
while(p!=NULL)
{
printf("%s %d \n", p->fio, p->stipendia);
p=p->next;
}
}

void prosmotr(ptr &head1,ptr &head2)
{ bool flag;
ptr p;
p=head2;
while(p!=NULL)
{ flag=Find(head1,p);
if (flag)
{
break;
}

p=p->next;
}
}

void main()
{int L=1;
ptr head1=NULL, head2=NULL;
setlocale(LC_ALL,"Russian");
SetConsoleCP(1251);
SetConsoleOutputCP(1251);
_getch();
head3=NULL;
while(L)
{
cout<<"1 - Формирование списка 1"<<endl;
cout<<"2 - Формирование списка 2"<<endl;
cout<<"3 - Печать списка 1"<<endl;
cout<<"4 - Печать списка 2"<<endl;
cout<<"5 - Пересечение двух списков"<<endl;
cout<<"Введите номер пункта меню:"<<endl;
cin>>L;
switch(L)
{
case 1: formspisok(&head1); break;
case 2: formspisok(&head2); break;
case 3: pechspisok(head1); break;
case 4: pechspisok(head2); break;
case 5: prosmotr(head1,head2); break;
case 6: L=0;break;
default: cout<<"Ошибкаввода"<<endl;
}
}

}
кира2015 на форуме Добавить отзыв для кира2015 Пожаловаться на это сообщение
кира2015 вне форума   Ответить с цитированием

Старый 07.06.2016, 16:06
Helpmaster
Member
 
Аватар для Helpmaster
 
Регистрация: 08.03.2016
Сообщений: 0

Аналогичные топики должно быть вам интересны

Pascal. Списки
Списки
Двунаправленные списки
Списки
Динамические списки.

Ads

Яндекс

Member
 
Регистрация: 31.10.2006
Сообщений: 40200
Записей в дневнике: 0
Сказал(а) спасибо: 0
Поблагодарили 0 раз(а) в 0 сообщениях
Репутация: 55070
Ответ

Опции темы
Опции просмотра

Ваши права в разделе
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Выкл.
HTML код Выкл.
Trackbacks are Вкл.
Pingbacks are Вкл.
Refbacks are Выкл.




Часовой пояс GMT +4, время: 03:14.

Powered by vBulletin® Version 6.2.5.
Copyright ©2000 - 2014, Jelsoft Enterprises Ltd.