19 -> 22

 avatar
unknown
c_cpp
4 years ago
2.6 kB
6
Indexable
#include <stdio.h>

void readFile(int a[][100], int &m, int &n);
void bai19(int a[][100], int m, int n);
void bai20(int a[][100], int m, int n);
void bai21(int a[][100], int m, int n);
void bai22(int a[][100], int m, int n);

int main() {
	int a[100][100];
	int m, n;
	
	readFile(a, m, n);
	bai19(a, m, n);
    bai20(a, m, n);
	bai21(a, m, n);
	bai22(a, m, n);
	
	return 0;
}

void readFile(int a[][100], int &m, int &n) {
	FILE *f;
    f = fopen ("table.inp", "rt");
    
    fscanf(f, "%d", &m);
    fscanf(f, "%d", &n);
    
    for (int i = 0; i < m; i++)
    	for (int j = 0; j < n; j++)
    		fscanf(f, "%d", &a[i][j]);

	fclose(f);
}

void bai19(int a[][100], int m, int n) {
	int s_rows[m];
	int s_cols[n];
	
	for (int i = 0; i < m; i++) {
		int s = 0;
		for (int j = 0; j < n; j++) {
			s += a[i][j];
		}
		s_rows[i] = s;
	}
	
	for (int j = 0; j < n; j++) {
		int s = 0;
        for (int i = 0; i < m; i++) {
            s = s + a[i][j];
        }
		s_cols[j] = s;
    }
	
	FILE *f;
	f = fopen("table.out", "wt");
	fprintf(f, "Bai 19:\n\t");
	for (int i = 0; i < m; i++)
		fprintf(f, "%5d ", s_rows[i]);
	fprintf(f, "\n\t");
	for (int i = 0; i < n; i++)
		fprintf(f, "%5d ", s_cols[i]);
	fprintf(f, "\n");
	fclose(f);
}

void bai20(int a[][100], int m, int n) {
	int rows_min[m];
	
	for (int i = 0; i < m; i++) {
		int min = a[i][0];
		for (int j = 0; j < n; j++) {
			if (a[i][j] < min)
				min = a[i][j];
		}
		rows_min[i] = min;
	}
	
	int max = rows_min[0];
	for (int i = 0; i < m; i++)
		if (rows_min[i] > max)
			max = rows_min[i];
			
	FILE *f;
	f = fopen("table.out", "a");
	fprintf(f, "Bai 20: %d\n", max);
	fclose(f);
}

void bai21(int a[][100], int m, int n) {
	for (int i = 0; i < m; i++) {
		for (int j = 0; j < n - 1; j++) {
			for (int t = j + 1; t < n; t++) {
				if (a[i][j] > a[i][t]) {
					int temp = a[i][j];
					a[i][j] = a[i][t];
					a[i][t] = temp;
				}
			}
		}
	}
	FILE *f;
	f = fopen("table.out", "a");
	fprintf(f, "Bai 21:\n\t");
	for (int i = 0; i < m; i++) {
		for (int j = 0; j < n; j++) {
			fprintf(f, "%5d ", a[i][j]);
		}
		fprintf(f, "\n\t");
	}
	fprintf(f, "\n");
	fclose(f);
}

int sumOf(int x) {
	int s = 0;
	while (x != 0) {
        s += x % 10;
        x /= 10;
    }
    return s;
}

void bai22(int a[][100], int m, int n) {
	int s = 0;
	
	for (int i = 0; i < m; i++) {
		for (int j = 0; j < n; j++) {
			s += sumOf(a[i][j]);
		}
	}
	FILE *f;
	f = fopen("table.out", "a");
	fprintf(f, "Bai 22: %d", s);
	fclose(f);
}
Editor is loading...