Форум программистов, компьютерный форум CyberForum.ru

Проверить, есть ли в списке хотя бы два одинаковых элемента - C++

Войти
Регистрация
Восстановить пароль
Другие темы раздела
C++ Строки http://www.cyberforum.ru/cpp-beginners/thread132502.html
суть программы, нужно написать программу которая считывает строки и выводит на экран не содержащие двузначных чисел. #include <stdio.h> #include <stdlib.h> #include <ctype.h> #include <fstream> #include<iostream> using namespace std;
C++ Что это такое??? virtual void Show(); virtual void Set(); friend ostream& operator<<( ostream & tmp , Medc & obj); friend istream& operator>>( istream & tmp , Medc & obj ); }; class WideMedc : private Medc { private: bool prescription; http://www.cyberforum.ru/cpp-beginners/thread132501.html
Удалить пробелы из введенной строки C++
Написать программу, которая удаляет из введенной клавиатурой строки пробелы Добавлено через 10 часов 40 минут помогите
Операторы ввода вывода в С++ C++
ребят дайте пожалуйста понятную ссылку что бы можно было почитать и выучить операторы ввода вывода пожалуйста...
C++ Отчистка экрана в компиляторе Dev http://www.cyberforum.ru/cpp-beginners/thread132476.html
Задание: 1) Описать структуру с именем MARSH, содержащую следующие поля: название начального пункта маршрута; название конечного пункта маршрута; номер маршрута; 2) Написать программу, выполняющую следующие действия: ввод с клавиатуры данных в массив, состоящий из восьми элементов типа MARSH; записи должны быть упорядочены по номерам маршрутов; вывод на экран информации о маршруте, номер...
C++ что такое конструктор? Обьясните плиз что такое конструктор? Это функция а что она делает и для чего? подробнее

Показать сообщение отдельно
Proger_1
0 / 0 / 0
Регистрация: 29.03.2010
Сообщений: 30

Проверить, есть ли в списке хотя бы два одинаковых элемента - C++

19.05.2010, 21:33. Просмотров 1755. Ответов 1
Метки (Все метки)

Прошу проверить правильность кода и помочь написать его дальше.
Написать программу, обеспечивающую работу с динамическими структурами - связанными списками. Элементами спика являются целые числа. Программа должна содержать 5 ф-ций:
1.Проверка, есть ли в списке хотя бы два одинаковых эл-та
2.Удаление из непустого списка первый отрицательный эл-т, если такой есть
3.Определение пустой список или нет
4.Вывод эл-ов списка на экран
5.Вывод на экран меню(должно содержать пункты для демонстрации работы ф-ций и выход).
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
#include "stdafx.h"
#include <iostream>
#include <fstream>
#include <string.h>
#include <stdlib.h>
#include <stdio.h>
#include <time.h>
#include <math.h>
#include <malloc.h>
 
struct node
{
    int data;
    struct node *nextPtr;
};
 
int _tmain(int argc, _TCHAR* argv[])
{
    struct node a1;
    struct node *newPtr, *startt, *startt1, *startt2;
    a1.data=10;
    a1.nextPtr=NULL;
    struct node a2;
    a2.data=60;
    a2.nextPtr=&a1;
    struct node a3;
    a3.data=12;
    a3.nextPtr=&a2;
    newPtr=(node*) malloc(sizeof(struct node));
    (*newPtr).data=10;
    (*newPtr).nextPtr=&a3;
    startt=newPtr;
 
    int a;
 
           //menju
    for(int h=1; h<100; h++)
    {
        printf("1 - Vivod elementov\n2 - proverka na pustotu\n3 - Proverka odinakovih elementov\n----------------------------------\n");
        scanf("%d",&a);
        printf("---------------------------\n");
 
        //vivod spiska na ekran
        if (a==1)
        {
            startt1=startt;
            while ((*startt).nextPtr!=NULL) 
            {
                startt2=startt;
                printf("%d\n",(*startt).data);
                startt=(*startt).nextPtr;
            }
            printf("-------------------------\n");
        }
 
        //odinakovie elementi
        if (a==3)
        {
            if ((a1.data==a2.data) || (a2.data==a3.data) || (a1.data==a3.data)) 
            {
                printf("Estj odinakovie elementi\n-----------------------------\n");
            }
            else
            {
                printf("Net odinakovih elementov\n------------------------------\n");
            }
        }
        
        //pustoj spisok ili net
        if (a==2)
        {
            if ((*startt).data==0) 
            {
                printf("Spisok pust\n-----------------------------\n");
            }
            else printf("V spiske estj zapisi\n------------------------------\n");
        }
    }
 
    scanf("%s");
    return 0;
}
Пока делал без функций, а в основном блоке программы. Сделал вывод списка, проверку ну пустоту, поиск одинаковых эл-ов и меню. Вроде как работает, но всё же посмотрите пожалуйста код, кажется мне что здесь может быть что-то неверно, т.к ну врубаюсь я в некоторые строки, например такие:
C++
1
2
3
4
5
a3.nextPtr=&a2;
newPtr=(node*) malloc(sizeof(struct node));
(*newPtr).data=10;
(*newPtr).nextPtr=&a3;
startt=newPtr;
Переписывал это с доски у учителя, а сам толкмо не знаю что это, с указателями вообще не дружу.

Поправте если здесь что не так, и осталось ещё сделать удаление отрицательного элемента. Не представляю как можно реализовать удаление отрицательной записи из спика.
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
 
Текущее время: 04:44. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru