/* Launo Tuuri --- C-ohj (Taina) s97 ------ Laskarit 5 Tehtävä 1 */ /* ! --- koko matriisin osoitteen ottaminen _EI_ kyllä onnistunut!:( */ #include static int *matr_a_s(int *a, int *b) { *a += *b; return a; } int main() { int eka[10][10], toka[10][10], i, j, k = 0; for (i=0; i<10; ++i) { /* alustus */ for (j=0; j<10; ++j) { ++k; eka[i][j] = k; toka[i][j] = 2 * k; } } for (i=0; i<10; ++i) /* yhteenlasku */ for (j=0; j<10; ++j) eka[i][j] = *matr_a_s(&eka[i][j], &toka[i][j]); for (i=0; i<10; ++i) /* tulostus */ for (j=0; j<10; ++j) printf("%d ", eka[i][j]); return 0; } #if 0 Alla HUONO (?) tapa tehdä sama... (siis ilmeisesti raskas, vai onko edes?) KYSY, eikö matriiseja voi tosiaan antaa osoittimina, pitääkö todellakin antaa osoite kerrallaan! static void matr_s(int a[10][10], const int b[10][10]) { int i, j; for (i=0; i<10; ++i) for (j=0; j<10; ++j) a[i][j] += b[i][j]; } int main() { int eka[10][10], toka[10][10], i, j, k = 0; for (i=0; i<10; ++i) { /* alustus */ for (j=0; j<10; ++j) { ++k; eka[i][j] = k; toka[i][j] = 2 * k; } } matr_s(eka, toka); /* yhteenlasku */ for (i=0; i<10; ++i) /* tulostus */ for (j=0; j<10; ++j) printf("%d ", eka[i][j]); return 0; } #endif