Добавил:
vvrstcnho
Рад, если кому-то помог
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз:
Предмет:
Файл:Лабораторные работы С (для ИВТ) / Готовые лабы С / Лаба7 / Laba 7 (2)
.c#include <stdio.h>
#include <stdlib.h>
#include <limits.h>
void analyzeMatrix(const char* inputFile, const char* outputFile) {
FILE *fin = fopen(inputFile, "r");
FILE *fout = fopen(outputFile, "w");
if (!fin || !fout) {
printf("Error opening files!\n");
return;
}
int rows, cols;
fscanf(fin, "%d %d", &rows, &cols);
int matrix[100][100];
int positive = 0, negative = 0, zero = 0;
double sum = 0;
int total = rows * cols;
int maxVal = INT_MIN, minVal = INT_MAX;
int maxRow = 0, maxCol = 0, minRow = 0, minCol = 0;
int maxNegative = INT_MIN, minPositive = INT_MAX;
int maxNegRow = 0, maxNegCol = 0, minPosRow = 0, minPosCol = 0;
for (int i = 0; i < rows; i++) {
for (int j = 0; j < cols; j++) {
fscanf(fin, "%d", &matrix[i][j]);
int val = matrix[i][j];
sum += val;
if (val > 0) positive++;
else if (val < 0) negative++;
else zero++;
if (val > maxVal) {
maxVal = val;
maxRow = i;
maxCol = j;
}
if (val < minVal) {
minVal = val;
minRow = i;
minCol = j;
}
if (val < 0 && val > maxNegative) {
maxNegative = val;
maxNegRow = i;
maxNegCol = j;
}
if (val > 0 && val < minPositive) {
minPositive = val;
minPosRow = i;
minPosCol = j;
}
}
}
fprintf(fout, "Matrix analysis results:\n");
fprintf(fout, "Positive elements: %d\n", positive);
fprintf(fout, "Negative elements: %d\n", negative);
fprintf(fout, "Zero elements: %d\n", zero);
fprintf(fout, "Average value: %.2f\n", sum / total);
fprintf(fout, "Maximum: %d at [%d][%d]\n", maxVal, maxRow, maxCol);
fprintf(fout, "Minimum: %d at [%d][%d]\n", minVal, minRow, minCol);
fprintf(fout, "Largest negative: %d at [%d][%d]\n", maxNegative, maxNegRow, maxNegCol);
fprintf(fout, "Smallest positive: %d at [%d][%d]\n", minPositive, minPosRow, minPosCol);
fclose(fin);
fclose(fout);
}
int main(int argc, char* argv[]) {
char inputFile[100], outputFile[100];
if (argc >= 3) {
strcpy(inputFile, argv[1]);
strcpy(outputFile, argv[2]);
} else {
printf("Enter input filename: ");
scanf("%s", inputFile);
printf("Enter output filename: ");
scanf("%s", outputFile);
}
analyzeMatrix(inputFile, outputFile);
printf("Analysis completed!\n");
return 0;
}
Соседние файлы в папке Лаба7
