Форум программистов, компьютерный форум, киберфорум
C для начинающих
Войти
Регистрация
Восстановить пароль
Карта форума Темы раздела Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.60/5: Рейтинг темы: голосов - 5, средняя оценка - 4.60
0 / 0 / 0
Регистрация: 14.05.2011
Сообщений: 8
1

Напишите консольную программу на Си которая бы подсчитывала количество повторений номеров в текстовым файле.

22.05.2011, 14:42. Показов 883. Ответов 6
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
Здравствуйте! Так как я только недавно начал изучать Си возникли некоторые проблемы с одной из задач:

"Напишите консольную программу на Си которая бы подсчитывала количество повторений номеров в текстовым файле. Номера от 0 до 9 (оба прилагаются )."

Пример: файл numbers.txt (новая строка - новый номер)
5
2
1
2
8
0
0
5
7

Условия выполнения программы: воспользоваться функциями (while, for , массивы, printf, if, else, getc, fopen)

Начал писать программку но получилось подсчитать повторение только отдельного числа (например 5)
Чтобы программа подсчитавало повторения для всех номеров нужно воспользоваться циклом while?

Вот что получилось:
C
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
#include <stdio.h>
int main()
{
    int numbers;
    int count=0;
    FILE *fp;
    fp=fopen("numbers.txt", "r");
    do
    {
    numbers=getc(fp);
    if (numbers == '5')
    count++;
    }
    while (numbers != EOF);
    printf("5 \t %d\n", count);
    system("PAUSE");
}
Показывает следующее: 5 (номер) пробел x(количество повторений)
Нужно бы создать таблицу на примере
0 x
1 x
2 x
3 x
4 x
5 x
6 x
7 x
8 x
9 x

где x количество повторений каждого числа.
Помогите пожалуйста.
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
22.05.2011, 14:42
Ответы с готовыми решениями:

Напишите программу, которая считает количество слов в файле
Напишите программу, которая считает количество слов в файле input.txt . Словом называется...

Напишите программу, которая в заданном файле подсчитывает количество определенных строк
Напишите программу, которая в заданном файле подсчитывает количество строк, длина которых в...

Напишите программу, которая будет считать количество чисел в текстовом файле.(числа вводятся построчно)
Здравствуйте, помогите с задачей, Напишите программу, которая будет считать количество чисел в...

Составить программу, которая подсчитывала бы, какую литературу покупают больше
Составить программу, которая подсчитывала бы, какую литературу покупают в книжном магазине больше:...

6
21 / 21 / 1
Регистрация: 05.01.2011
Сообщений: 173
22.05.2011, 14:51 2
создай массив int в котором будет кол-во повторений для каждого числа, а потом в цикле его заполняй.
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
int _tmain(int argc, _TCHAR* argv[])
{
    int numbers;
    int count[10];
    FILE *fp;
    fp=fopen("numbers.txt", "r");
    while(numbers!= EOF)
    {
    numbers=getc(fp);
    
    count[numbers]++;
    }
    for (int i=0;i<sizeof(count);i++)
    {
        printf("%i - %i",i,count[i]);
    }
    system("PAUSE");
}
0
0 / 0 / 0
Регистрация: 14.05.2011
Сообщений: 8
22.05.2011, 15:05  [ТС] 3
может сначала переместить все номера в массив
типо int numbers[10];

Добавлено через 12 минут
maks спасибо
можно ли обойтись без sizeof? мы еще не проходили.
0
37 / 37 / 6
Регистрация: 20.03.2011
Сообщений: 331
22.05.2011, 15:13 4
Держи Почему-то у всех сегодня вопросы по txt
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
#include <fstream>
#include <iostream>
#include <string>
#include <nik.h>
int i = 1;
std::string s;
int k[10],m;
int n;
int main()
{
m = 0;
        std::ifstream ifs("nik.txt");  //Теперь открываем
       if(!ifs.is_open()){std::cerr<<"File not found"; return 1;} //если файл уже успели удалить, то exit
 
        while(getline(ifs,s))       {
         n = atoi(s.c_str()); // переводим string в int
      for (m = 0; m < 10; m++) {
          if (n==m) {
      k[m]=k[m] + 1;
      }
      }
 
 }
m = 0;
 
 
 
                ifs.close(); //Закрываем файл
                 for (m = 0; m < 10; m++) { // отображаем по-порядку
                std::cout<<m<<"x" <<k[m]<< "\n";
 
                 }
                 system("pause >> void");
}
0
21 / 21 / 1
Регистрация: 05.01.2011
Сообщений: 173
22.05.2011, 15:22 5
а что такое
C++
1
#include <nik.h>
?
0
37 / 37 / 6
Регистрация: 20.03.2011
Сообщений: 331
22.05.2011, 15:27 6
Это библиотека чтобы кириллица нормально отображалась
Здесь она не нужна
0
0 / 0 / 0
Регистрация: 14.05.2011
Сообщений: 8
22.05.2011, 16:02  [ТС] 7
спасибо но мне с++ не нужен. Только Си
0
22.05.2011, 16:02
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
22.05.2011, 16:02
Помогаю со студенческими работами здесь

Написать программу, которая бы отслеживала и подсчитывала все нажатия на клавиши мыши.
Моя мама пристрастилась к казуальным играм, в которых всё делается левой кнопкой мыши. Китайская...

Напишите программу, которая определяет наибольшее число в файле
Текстовый файл CISLA.TXT содержит ряд натуральных чисел. Каждое из этих чисел может содержать до...

Напишите функцию CountEq(f), которая находит количество строк в файле, состоящих из одинаковых литер.
Текстовые файлы 1. Напишите функцию CountEq(f), которая находит количество строк в файле,...

Напишите программу, которая удаляет все переносы слов, встречающиеся в текстовом файле
6. Напишите программу, которая удаляет все переносы слов, встречающиеся в текстовом файле....

Разработать программу,которая содержит функцию,которая подсчитывает в произвольном текстовом файле количество
Разработать программу,которая содержит функцию,которая подсчитывает в произвольном текстовом файле...

Напишите программу, которая вычисляет сумму всех чисел кратных 5, записанных в файле в столбик
Напишите программу, которая вычисляет сумму всех чисел кратных 5, записанных в файле в столбик, и...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
7
Ответ Создать тему
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2024, CyberForum.ru