работа с массивом

  • Автор темы jude
  • Дата начала
J

jude

#1
Здравствуйте!!!Я столкнулся со следующей проблемой.
В файле есть 15 чисел,необходимо их считать в двумерный массив, где 1 столбец-это все числа которые были в файле, а второй столбец-это количество повторений этого числа в файле.Помогите пожалуйста.Если кто-то знает как выполнить часть задачи тоже пишите, пригодится любая помощь.
 
G

Guest

#2
Предполагается, что ты знаешь сколько места занимает запись одного числа в файле.
1 определяешь массив а 15*2
2 определяешь переменную - счетчик n, инициализируешь 0
3 определяешь переменную с
все вторые элементы массива инициализируешь -1
***
читаешь число из файла в с
если n==0
то а(n)(0)=с;а(n)(1)++;n++;
иначе проверяешь наличие с в массиве от 0 до n-1
если найдено - то соответственно +1 во второй столбец массива
если нет - то а(n)(0)=с;а(n)(1)++;n++;
///

кусок от *** до /// повтро 15 раз
все
за написание кода - доп информация и $

PS если тебе все-таки нужно не количество ПОВТОРЕНИЙ, а встречаемость числа в файле, то вторую колонку нужно инициализировать не -1, а 0
 
J

jude

#3
инициализировать вторые элементы через фигурные скобки???я правильно понял?

а насчет повторений я имел в виду следующее.
например числа:1.2.3.2.1.6.8.6.6.6.4.3.3.3.Число 6 и 3 повторилось 3 раза
 
G

Guest

#4
поскольку массив маленький, можно сделать тупо
а[0][1]=-1;
a[1][1]=-1;
.........................
a[14][1]=-1;
тебе нужен исходный вариант, где числа встречающиеся 1 раз во второй колонке будут иметь 0
кстати, неточность условия, массив типа 111222233333 должен отобразиться как
123
234
или
111222233333
222333344444
?
 
J

jude

#5
должен отобразиться как
1-кол-во раз
2-кол-во раз
3-кол-во раз
4-кол-во раз

Я сделал что происходит только чтение из файла, хотя в выводит только посл. число.Посмотрите пожалуйста!!!!
Код:
#include <iostream>
#include <fstream>
#include <windows.h>
using namespace std;
int main()
{int a[10][2];
int n;
const char *f = "num.txt";
ifstream infile(f);
if(!infile){
cout << "Error open file: "<<f<< endl;
return 1;
}

cout << "nums: ";

while (!infile.eof())
{ infile >> n;

}
infile.close();
cout<<n;
system ("pause");
return 0;
}