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

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

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

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 07.06.2016, 15:04   #1
кира2015
 
Регистрация: 07.06.2015
Сообщений: 5
По умолчанию программа с++. списки

помогите пожалуйста написать программу. не знаю что еще добавить. даны 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 вне форума Ответить с цитированием
Старый 15.06.2016, 21:05   #2
ura_111
Участник клуба
 
Регистрация: 14.05.2016
Сообщений: 1,793
По умолчанию

Ты уже сделал?
ura_111 вне форума Ответить с цитированием
Ответ


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

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Списки С++ Stanik24 Общие вопросы C/C++ 2 17.07.2015 19:47
Списки С++ Jeckor Помощь студентам 7 14.11.2013 19:38
Программа на Си(линейные списки) nyulkin Помощь студентам 1 04.01.2011 20:04
Списки AnnNet Microsoft Office Excel 5 23.11.2009 20:29