|
|
Регистрация Восстановить пароль |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
|
Опции темы | Поиск в этой теме |
07.06.2016, 15:04 | #1 |
Регистрация: 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; } } } |
15.06.2016, 21:05 | #2 |
Участник клуба
Регистрация: 14.05.2016
Сообщений: 1,793
|
Ты уже сделал?
|
Похожие темы | ||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
Списки С++ | 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 |