Сложение двух матриц - C (СИ) (72434)
Формулировка задачи:
В общем скажу сразу: обращаюсь я к вам не из-за лени, а из-за недостатка идей и соответсвенно знаний (на данном этапе). Перебробовал "добрую" кучу вариантов решения, но все четно.
Условие задачи: "Реализовать алгоритм нахождения суммы двух прямоугольный матриц размером nхm. Значение n и m определяются пользователем". Использовать можно только то, что имеется в моем варианте кода.
З.Ы. Не ругайте за неграмотность кода, только учусь =)
#include <stdio.h> #include <stdlib.h> #include <math.h> /* run this program using the console pauser or add your own getch, system("pause") or input loop */ int main(int argc, char *argv[]) { const int n,m; int i,j,i1,j1,i2,j2; printf("Enter the size n:"); scanf("%d",&n); printf("n must = m\n"); printf("Enter 2 number of size m:"); scanf("%d",&m); if(n!=m || n<0 || m<0){ printf("ERROR"); return 0; } int array[n][m]; for(i=0; i<n; i++){ for(j=0; j<m; j++){ array[i][j] = rand()%10; printf("%10d",array[i][j]); } printf("\n"); } printf("\n"); for(i1=0; i1<n; i1++){ for(j1=0; j1<m; j1++){ array[i1][j1] = rand()%10; printf("%10d",array[i1][j1]); } printf("\n"); } for(i2=0; i2<n; i2++){ for(j2=0; j2<m; j2++){ array[i2][j2]=array[i][j] + array[i1][j1]; printf("%10d",array[i2][j2]); } printf("\n"); } return 0; }
Решение задачи: «Сложение двух матриц»
textual
Листинг программы
#include <iostream> /* run this program using the console pauser or add your own getch, system("pause") or input loop */ #define SIZE_LINE 100 #define SIZE_CLM 100 void setRandArray(int*, int, int); void showArray(int*,int, int); int main(int argc, char *argv[]) { int array_1[SIZE_LINE][SIZE_CLM]; int array_2[SIZE_LINE][SIZE_CLM]; int array_Res[SIZE_LINE][SIZE_CLM]; int n, m; setlocale(0, "rus"); printf("Введите количество строк, но не больше %d n:", SIZE_LINE); scanf("%d", &n); printf("Введите количество столбцов, но не больше %d m:", SIZE_CLM); scanf("%d", &m); if (n>SIZE_LINE || m>SIZE_CLM||n <= 0 || m <= 0){ printf("Ошибка,выход за границы"); return 0; } setRandArray(&array_1[0][0], n, m); setRandArray(&array_2[0][0], n, m); showArray(&array_1[0][0], n, m); printf("\n"); showArray(&array_2[0][0], n, m); printf("\n"); for (int i = 0; i<n; i++){ for (int j = 0; j<m; j++){ array_Res[i][j] = array_1[i][j] + array_2[i][j]; } } showArray(&array_Res[0][0], n, m); return 0; } /************************************************************/ void setRandArray(int*p, int n, int m){ for (int i = 0; i < n; i++) { for (int j = 0; j < m; j++) { *(p + i*SIZE_CLM + j) = rand() % 10; } } } /************************************************************/ void showArray(int*p, int n, int m){ for (int i = 0; i < n; i++) { for (int j= 0; j < m; j++) { printf("%10d\t", *(p + i*SIZE_CLM + j)); } printf("\n"); } }
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д