Сложение двух матриц - C (СИ) (72434)

Узнай цену своей работы

Формулировка задачи:

В общем скажу сразу: обращаюсь я к вам не из-за лени, а из-за недостатка идей и соответсвенно знаний (на данном этапе). Перебробовал "добрую" кучу вариантов решения, но все четно. Условие задачи: "Реализовать алгоритм нахождения суммы двух прямоугольный матриц размером nхm. Значение n и m определяются пользователем". Использовать можно только то, что имеется в моем варианте кода. З.Ы. Не ругайте за неграмотность кода, только учусь =)
Листинг программы
  1. #include <stdio.h>
  2. #include <stdlib.h>
  3. #include <math.h>
  4. /* run this program using the console pauser or add your own getch, system("pause") or input loop */
  5.  
  6. int main(int argc, char *argv[]) {
  7. const int n,m;
  8. int i,j,i1,j1,i2,j2;
  9. printf("Enter the size n:");
  10. scanf("%d",&n);
  11. printf("n must = m\n");
  12. printf("Enter 2 number of size m:");
  13. scanf("%d",&m);
  14. if(n!=m || n<0 || m<0){
  15. printf("ERROR");
  16. return 0;
  17. }
  18. int array[n][m];
  19. for(i=0; i<n; i++){
  20. for(j=0; j<m; j++){
  21. array[i][j] = rand()%10;
  22. printf("%10d",array[i][j]);
  23. }
  24. printf("\n");
  25. }
  26. printf("\n");
  27. for(i1=0; i1<n; i1++){
  28. for(j1=0; j1<m; j1++){
  29. array[i1][j1] = rand()%10;
  30. printf("%10d",array[i1][j1]);
  31. }
  32. printf("\n");
  33. }
  34. for(i2=0; i2<n; i2++){
  35. for(j2=0; j2<m; j2++){
  36. array[i2][j2]=array[i][j] + array[i1][j1];
  37. printf("%10d",array[i2][j2]);
  38. }
  39. printf("\n");
  40. }
  41. return 0;
  42. }

Решение задачи: «Сложение двух матриц»

textual
Листинг программы
  1. #include <iostream>
  2. /* run this program using the console pauser or add your own getch, system("pause") or input loop */
  3.  
  4. #define SIZE_LINE 100
  5. #define SIZE_CLM 100
  6. void setRandArray(int*, int, int);
  7. void showArray(int*,int, int);
  8.  
  9.  
  10. int main(int argc, char *argv[]) {
  11.        
  12.     int array_1[SIZE_LINE][SIZE_CLM];
  13.     int array_2[SIZE_LINE][SIZE_CLM];
  14.     int array_Res[SIZE_LINE][SIZE_CLM];
  15.  
  16.     int n, m;
  17.     setlocale(0, "rus");   
  18.     printf("Введите количество строк, но не больше %d n:", SIZE_LINE);
  19.     scanf("%d", &n);
  20.    
  21.     printf("Введите количество столбцов, но не больше %d m:", SIZE_CLM);
  22.     scanf("%d", &m);
  23.  
  24.     if (n>SIZE_LINE || m>SIZE_CLM||n <= 0 || m <= 0){
  25.         printf("Ошибка,выход за границы");
  26.         return 0;
  27.     }
  28.    
  29.    
  30.  
  31.     setRandArray(&array_1[0][0], n, m);
  32.     setRandArray(&array_2[0][0], n, m);
  33.  
  34.     showArray(&array_1[0][0], n, m);
  35.     printf("\n");
  36.     showArray(&array_2[0][0], n, m);
  37.  
  38.     printf("\n");
  39.    
  40.     for (int i = 0; i<n; i++){
  41.         for (int j = 0; j<m; j++){
  42.  
  43.             array_Res[i][j] = array_1[i][j] + array_2[i][j];           
  44.         }
  45.        
  46.     }
  47.     showArray(&array_Res[0][0], n, m);
  48.  
  49.  
  50.     return 0;
  51. }
  52.  
  53. /************************************************************/
  54. void setRandArray(int*p, int n, int m){
  55.  
  56.     for (int i = 0; i < n; i++)
  57.     {
  58.         for (int j = 0; j < m; j++)
  59.         {
  60.             *(p + i*SIZE_CLM + j) = rand() % 10;
  61.         }
  62.     }
  63. }
  64. /************************************************************/
  65. void showArray(int*p, int n, int m){
  66.     for (int i = 0; i < n; i++)
  67.     {
  68.         for (int j= 0; j < m; j++)
  69.         {
  70.             printf("%10d\t", *(p + i*SIZE_CLM + j));
  71.         }
  72.         printf("\n");
  73.     }
  74. }

ИИ поможет Вам:


  • решить любую задачу по программированию
  • объяснить код
  • расставить комментарии в коде
  • и т.д
Попробуйте бесплатно

Оцени полезность:

8   голосов , оценка 3.75 из 5

Нужна аналогичная работа?

Оформи быстрый заказ и узнай стоимость

Бесплатно
Оформите заказ и авторы начнут откликаться уже через 10 минут
Похожие ответы