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

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

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

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 16.05.2011, 19:07   #1
Qlry
 
Регистрация: 14.05.2011
Сообщений: 3
Вопрос Не выводит нужный массив. В чём проблема?

Дан массив A[7][9]. Найти все числа которые не повторяются и вывести их в массив N[k]. Вот код:

Код:
#include <conio.h>
#include <iostream>
#include <fstream>
using namespace std;
const int j=9;
const int i=7;
const int k=63;
int main(){
       ifstream vvod("vvod.INF");
       ofstream VIVOD("vivod.OUT");
       int h, s;
       int N[k];
       int Q[i][j];
       for (int j=0;j<9;j++){
       for (int i=0;i<7;i++)
       vvod >> Q[i][j];}
       for (int j=0;j<9;j++){
       for (int i=0;i<7;i++){
       int s=0;
       h=Q[i][j];
       for (int j=0;j<9;j++){
       for (int i=0;i<7;i++)
       if(h==Q[i][j])
       s++;}
       if(s==1){
       for(int k=0;k<63;k++)
       VIVOD << N[k] << h << ' ';
       }}}
       return 0;}
Идея у меня такая:
мы сравниваем первое число массива, со всеми числами(включая первое), и когда числа равны между собой - s=s+1.
Изначально с=0, т.е когда с=1 - значит это число не повторялось ниразу, если с > 1 - не записываем его в массив
С будет полюбому равно 1, так как вначале мы число из массива сравнивает само с собой.
Например, массив {5,4,1,5,7,4..}
1)Берем 1-е число в массиве, это 5.
2)Сравниваем 1-е с 1-м числом в массиве: 5=5, с++
3)Сравниваем 1-е со 2-м числом в массиве: 5!=4
4)Сравниваем 1-е с 3-м числом в массиве: 5!=1
5)Сравниваем 1-е с 4-м числом в массиве: 5=5, с++
Значит 1-е число уже не пожходит, и так далее.
Проблема в том что вместо нужного массива, ничего не выводит в блокнот(

Последний раз редактировалось ACE Valery; 17.05.2011 в 02:14.
Qlry вне форума Ответить с цитированием
Старый 17.05.2011, 09:02   #2
Mandrivnyk
Software Developer
Участник клуба
 
Аватар для Mandrivnyk
 
Регистрация: 01.03.2011
Сообщений: 1,098
По умолчанию

Во-первых, вот это:
Код:
VIVOD << N[k] << h << ' ';
будет работать совсем не так, как тебе хочется. Догадаешься, почему?
Во-вторых,
Код:
if(s==1){
       for(int k=0;k<63;k++)
       VIVOD << N[k] << h << ' ';
       }
если s==1 ты пытаешься записать одно и то же значение h для каждого k из массива N.
С логикой пограммы ты намудрил...
Болтовня ничего не стоит. Покажите мне код. (c) Linus Torvalds
Помог ответ? -- Поставьте отзыв.
Выражения особой благодарности в рублевом эквиваленте отправлять сюда --> R269634919062
Mandrivnyk вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Не пойму в чём проблема Winterwolf93 Помощь студентам 0 31.03.2011 18:19
в чём проблема? zetr0 Помощь студентам 7 04.10.2010 20:02
функция не возвращает нужный мне массив LOST94 Общие вопросы C/C++ 0 01.07.2010 15:33
Не знаю в чём проблема Castro Паскаль, Turbo Pascal, PascalABC.NET 5 24.12.2008 01:38