0
Следующий код почти работает, но по какой-либо причине первое значение в напечатанном массиве также является последним значением, а также первым значением следующего набора данных, который печатается. Я знаю, что это может показаться запутанным. Вот кодКод, который разбивает массив и подсчитывает повторения
#include <stdio.h>
#define MAX 288
int nThArrayPrint(double prev, int count, int i, double *array) {
int j = MAX*i;
for (i = j; i <(j+MAX); i++) {
if (array[i] == prev) {
count++;
} else {
printf("%.4lf= %d\t", prev, count);
prev = array[i];
count = 1;
}
}
return count;
}
int main()
{
FILE *fp;
fp = fopen("C:\\Users\\niall\\Desktop\\question2.txt", "r");
double array[MAX * 5]; // Initializes array to all 0.0s
int i, x, j, count;
double prev = 0;
if (fp != NULL) {
for (i = 0; i < MAX * 5; i++) { //Load values from file into an array
fscanf(fp, "%lf", &array[i]);
}
fclose(fp);
prev = array[0]; // initialize
for (i = 0; i < 5; i++){
count = 1;
printf("\tNumber of times each value is repeated for the %dth set of values\n\n", i+1);
count = nThArrayPrint(prev, count, i, array);
prev = array[MAX*i];
printf("%.4lf= %d\n\n", prev, count);
}
} else {
printf("There was a probem opening the file.");
}
}
'двойной массив [MAX * 5]; // Инициализация массива всех 0.0s' ... как? не 'array' в' auto'-хранилище? –
Ты меня там потерял – niallo27
Жаль, что я тебя не понял. –