James GDN Ответов: 4

Пожалуйста, нужна помощь в этом кодировании. Я новичок в Си


Я новичок в программировании на языке Си. Пожалуйста, помогите мне решить эту проблему. в моем кодировании много ошибок.
вопрос:

Напишите программу для вычисления суммы элементов в двух таблицах целых чисел. Ваша программа должна получать входные значения с клавиатуры и печатать все значения в каждой строке и столбце и, наконец, отображать таблицу суммирования значений.

ВЫХОД
Сколько рядов? 2
Сколько колонок? 3
Первый стол:
Введите данные для строки № 1
1 2 3
Введите данные для строки № 2
4 5 6
Вторая таблица:
Введите данные для строки № 1
7 8 9
Введите данные для строки № 2
10 11 12
Суммы элементов:
8 10 12
14 16 18

Мое Кодирование:
#include<stdio.h>

void printArray( const int a[][] );

int main(void)
...{
int rows,column;
int a,b,c,d,e,f,g,h,i,j,k,l,m,n,o,p,q,r;

printf("How many rows?:\n");
scanf("%d",&rows);
printf("How many columns?\n");
scanf("%d",&column);

printf("First table: \n");
printf("Enter data for row no.1:\n");
scanf("%d,d,d",&a,b,c);
printf("Enter data for row no.2:\n");
scanf("%d,d,d",&d,e,f);

printf("Second table: \n");
printf("Enter data for row no.1:\n");
scanf("%d,d,d",&g,h,i);
printf("Enter data for row no.2:\n");
scanf("%d,d,d",&j,k,l);

m=a+g
n=b+h
o=c+i
p=d+j
q=e+k
r=f+l

int array1[ rows ][ column ] = { a,b,c,d,e,f };
int array2[ rows ][ column ] = { g,h,i,j,k,l };
int arraysum[ rows ][ column ] = { m,n,o,p,q,r, };

printf("Sum of the elements: \n");
printf("m,n,o"\n);
printf("p,q,r\n");

}

4 Ответов

Рейтинг:
1

OriginalGriff

Прежде всего, вам нужно узнать о петлях. Они, вероятно, есть в ваших конспектах лекций, но вот краткое резюме:
1) объявите переменную для управления циклом

int i;
2) Установите петлю:
for (i = 0; i < rows; i++)
Это говорит: "Я" начинается с нуля. Обходите цикл все время, пока "i "меньше переменной" rows", добавляя по одному к" i " каждый раз, когда вы обходили цикл.
Это означает, что если число строк равно (скажем) 3, то оно обойдет цикл 3 раза: когда ноль, когда я один и когда я два.
3) Поместите некоторый код в тело цикла:
{
//Code here
}
Это код, который будет выполняться каждый раз, когда он проходит цикл.
Теперь вы можете получить ряд информации за один раз от пользователя:
printf("How many rows?:\n");
scanf("%d",&rows);
printf("How many columns?\n");
scanf("%d",&columns);
int arrayOfData[100][100];
int x, y, currentValue;
for (y = 0; y < rows; y++)
   {
   printf("Enter data for row %d:\n", y);
   for (x = 0; x < columns; x++)
      {
      printf("   Enter value of column %d:", x + 1);
      scanf("%d", ¤tValue);
      arrayOfData[x][y] = currentValue;
      }
   }
Как только вы освоитесь с этим, вы можете посмотреть на использование циклов для суммирования ваших строк и так далее.

Отказ от ответственности: этот код непроверен, не скомпилирован и может давать ошибки - у меня нет компилятора Си под рукой...

(А для пуристов-да, это магические числа, нет, никаких проверок диапазона нет: он только начинает, мы можем обсудить это позже... У него сейчас гораздо больше забот!)


Рейтинг:
1

nagendrathecoder

Это не очень хорошее Программирование.
Что бы вы сделали, если бы я ввел 10 строк и 10 столбцов, вы собираетесь определить 100 переменных? и тогда как вы планируете обрабатывать эти 100 переменных?
Вместо этого используйте массивы для хранения значений.


Nitty2011

Хорошо!

Рейтинг:
0

Rick York

И еще одно - эти строки :

scanf("%d,d,d",&a,b,c);


должно быть :

scanf("%d,%d,%d",&a,&b,&c);


Обратите внимание на " % "на каждом маркере формата и" & " на каждом переменном адресе.