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

Выяснить, сколько чисел входит в последовательность по одному разу - C++

Войти
Регистрация
Восстановить пароль
Другие темы раздела
C++ Вывести на экран линию из символов http://www.cyberforum.ru/cpp-beginners/thread374513.html
Нужно написать программу c помощью цикла While, вот условие: Написать программу, которая выводит на экран линию из символов. Число символов, какой использовать символ, и какая будет линия -...
C++ Помогите написать прогу в С++ Люди пожалуйста помогите написать в С++ программы для задач ,буду очень благодарен Задача1 Lin18. Найти решение системы уравнений вида A1·x + B1·y = C1, A2·x + B2·y = C2, заданной своими... http://www.cyberforum.ru/cpp-beginners/thread374507.html
C++ русские буквы
можно ли как-нибудь ввести в консоль русский текст, получить его, а затем работать с ним, а затем вывести его. посьню: есть код: char st = {0}; cout<<"Введите строку: "; cin>>st;...
C++ Выравниваем строки по правому и левому краям
Задача: Создать программу, которая бы запрашивала у пользователя строки до тех пор, пока он не введет пустую строку, после чего программа должна вывести список введенных строк в два столбца,...
C++ Что не так в программе? (цикл While) http://www.cyberforum.ru/cpp-beginners/thread374488.html
Условие: Написать программу, которая находит сумму всех целых нечетных чисел в диапазоне, указанном пользователем. #include <iostream> using namespace std; int main() { int summa=0,a,b,n=a;...
C++ Что такое композиция? Добрый день. Тут читаю книгу и в ней приводится длинющий и непонятный пример композиции. Попросил бы Вас привести простенький пример композиции, то есть классы как элементы других классов. Желательно... подробнее

Показать сообщение отдельно
Glam_Man
6 / 6 / 0
Регистрация: 15.10.2011
Сообщений: 73

Выяснить, сколько чисел входит в последовательность по одному разу - C++

29.10.2011, 16:54. Просмотров 2659. Ответов 30
Метки (Все метки)

Условие задачи написано в шапке кода программы. Я написал эту программу, программа работает. Но есть одно ключевое но: преподаватель мне сказал, что то, работает или нет программа его волнует в последнюю очередь. Он анализирует код и задаёт мне постоянно один и тот же вопрос: "какой смысл сравнивать с незаданным b[j]?". Я задавал b[j], равный 0, программа тоже работала, но тогда он мне задал вопрос: "ты сравниваешь все числа с b[j], равным нулю. Какой в этос смысл?". Вот код написанной мною программы:

Код
//Даны натуральное n, целые числа a1, ..., an. Внутри данной последовательности могут быть поваторяющиеся члены. 
//Выяснить, сколько чисел входит в последовательность по одному разу
#include <stdio.h>
const int N=100;
void inMas1(int &n, int a[N])
{
        //ввод размерности массива
        printf ("Vvedite razmernost pervogo massiva n=");
        scanf ("%d", &n);
        //проверка на корректность введённой размерности массива
        if (n<=0)
        {
                printf ("Nekorrektniy vvod \n");
        }
        for (int i=0; i<n; i++)
        {
                //ввод a[i]
                printf ("a[%d]=", i);
                scanf ("%d", &a[i]);
        }
}
void MasNoPovtor(int n, int a[], int &k, int b[])
{
        //начальное присвоение
        k=0;
        //Просмотр массива a[N] с занесением всех неповторяющихся элементов этого массива в b[N]
        for (int i=0; i<n; i++)
        {
                //начальное присвоение
                bool flagNo=true;
                int j=0;
                while ((flagNo)&&(j<n))
                {
                        //цикл сравнения
                        if (a[i]==b[j])
                        {
                                flagNo=false;
                        }
                        j++;
                }
                if (flagNo)
                {
                        //добавление a[i] в b[k]
                        b[k]=a[i];
                        k++;
                }
        }
}
void main()
{
        //определение переменных
        int n, k, a[N], b[N];
        //ввод исходных данных
        inMas1(n, a);
        //вычисление b
        MasNoPovtor(n, a, k, b);
        //вывод результата
        if (n>0)
        {
        printf ("%d", k);
        printf ("\n");
        }
}
Собсно, нужно обосновать этот момент. Либо же, писать программу по-другому. Буду благодарен за помощь
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
 
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru