Я написал прогу каторая выводит количество неповторяющихся в массиве чисел:
#include <stdio.h>
#include <malloc.h>
#include <iostream.h>
int main()
{
int n;
printf ("Vvedite razmernost massiva: ");
scanf ("%d", &n);
float *A;
A = (float*)malloc(n*sizeof(float));
if(!A)
{
printf("*** Nepravilno!!! ***");
}
int r = 0 ;
for (int i = 0; i < n; i++)
{
r++;
printf ("%d element: \t", r);
scanf("%d", &A[i]);
}
int m, q, i = 0;
for (q = 0 ; q < n; q++ )
{
bool f = true;
for (m = 0; m < n; m++ )
{
if ((q != m) && (A[q] == A[m]))
{
f = false;
}
}
if (f) i++;
}
printf("\nKolichestvo chisel katorie ne povtoryautsa: %d", i);
scanf("%d", &m);
}
НО эту задачку нада сделать по принципу модульности, тобиш разсовать все методы по разным функциям. Я в функциях не очень панимаю... Начал с того, что попыталься засунуть ввод массива в соответствующую функцию:
#include <stdio.h>
#include <malloc.h>
#include <iostream.h>
int Vvid(float *A, int n)
{
int i, r=0;
for (i = 0; i < n; i++)
{
r++;
printf ("%d element: \t", r);
scanf("%d", &A[i]);
}
return A[i];
}
int main()
{
int n, m, q, i, a = 0;;
bool f;
float *A;
printf ("Vvedite razmernost massiva: ");
scanf ("%d", &n);
A = (float*)malloc(n*sizeof(float));
if(!A)
{
printf("*** Nepravilno!!! ***");
}
Vvid(A, n);
for (q = 0 ; q < n; q++ )
{
f = true;
for (m = 0; m < n; m++ )
{
if ((q != m) && (A[q] == A[m]))
{
f = false;
}
}
if (f) a++;
}
printf("\nKolichestvo chisel katorie ne povtoryautsa: %d", i);
scanf("%d", &m);
}
Оно компилируеться, но в конце выводит неправильное i. Обьясните мне пожалуйста, что я сделал не так и как все правильно распределить по функциям.
RPI.su - самая большая русскоязычная база вопросов и ответов. Наш проект был реализован как продолжение популярного сервиса otvety.google.ru, который был закрыт и удален 30 апреля 2015 года. Мы решили воскресить полезный сервис Ответы Гугл, чтобы любой человек смог публично узнать ответ на свой вопрос у интернет сообщества.
Все вопросы, добавленные на сайт ответов Google, мы скопировали и сохранили здесь. Имена старых пользователей также отображены в том виде, в котором они существовали ранее. Только нужно заново пройти регистрацию, чтобы иметь возможность задавать вопросы, или отвечать другим.
Чтобы связаться с нами по любому вопросу О САЙТЕ (реклама, сотрудничество, отзыв о сервисе), пишите на почту [email protected]. Только все общие вопросы размещайте на сайте, на них ответ по почте не предоставляется.