Я работаю над программой для организации списка чисел из файла и вывода этих чисел в удобном для чтения формате. Такие, как файл называется Counting.txt
, содержащие цифры:Организация проблем с выходом файлов
11
1 1 2 3 4 4 4 4 5 5 7
и я хочу его к выходу:
1x2 2x1 3x1 4x4 5x2 7x1
Формула для вывода будучи vXc
, где v
является номером и c
является количество раз такое случается. Но моя текущая программа только выводит его как:
1x1 2x1 3x1 4x1 4x1 4x1 4x1 5x1 5x1 7x1
Я считаю, что есть небольшая ошибка по моему для цикла, которая не позволяет мне изменить мою c
переменный, или число, указывающее, сколько раз происходит фактическое число , Может ли кто-нибудь помочь?
Мой код:
#include <stdio.h>
int main() {
FILE* file = fopen("counting.txt", "r");
int total_num, count = 1, num, num2, i;
if (file == NULL) {
printf("Did not find counting.txt file.\n");
}
fscanf(file, "%d", &total_num);
fscanf(file, "%d", &num);
for (i = 1; i < total_num; i++) {
fscanf(file, "%d", &num);
if (num2 == num) {
count = count + 1;
} else {
printf("%dX%d ", num, count);
count = 1;
}
}
return 0;
}
Хм, я думаю, что я еще немного потерял. :(Что бы это выглядело в реальном коде? – staringblind
Это помогло его почти там! Но с переработанным контуром он выводит: 2x2 3x1 4x1 5x4 7x2 7x1 Где нужный вывод: 1x2 2x1 3x1 4x4 5x2 7x1 – staringblind
Что теперь? – JuniorCompressor