Если в наборе содержится число 2, то вывести сумму его элементов - C (СИ)

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

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

Нужно решение задач перевести с паскаля на Си, сам не нарю как это сделать... 1.Даны целые числа K, N, а также K наборов целых чисел по N элементов в каждом наборе. Для каждого набора выполнить следующее действие: если в наборе содержится число 2, то вывести сумму его элементов; если в наборе нет двоек, то вывести 0.
Program example;
const
max=100;
var
TheArr:array [1..max,1..max]of integer;
k,n:integer;
i,j:integer;
sum:integer;
bool:boolean;
begin
repeat
write('Введите k и n');readln(k,n);
until (k and n)<max;
for i:=1 to k do
begin
bool:=false;
sum:=0;
for j:=1 to n do
begin
sum:=sum+TheArr[i,j];
if(TheArr[i,j]=2)then
begin
bool:=true;
end;
end;
if(bool)then
begin
writeln('Сумма ряда=',sum);
end
else
begin
writeln('Сумма ряда=',0);
end;
end;
end.
2.Дано целое число N (> 1) и набор из N целых чисел. Вывести те элементы в наборе, которые меньше своего левого соседа, и количество K таких элементов.
Program example1;
const
N=10;
TheArr:array [1..N]of byte=(1,2,3,4,2,4,3,7,8,9);
var
i:byte;
k:byte;
begin
k:=0;
for i:=2 to N do
begin
if(TheArr[i]<TheArr[i-1])then
begin
Write(TheArr[i],' ');
k:=k+1
end;
end;
Writeln;
write('К=',k);
end.

Решение задачи: «Если в наборе содержится число 2, то вывести сумму его элементов»

textual
Листинг программы
#include <stdio.h>
#define MAX 100
 
int main()
{
    int TheArr[MAX][MAX];
    int k=101,n=101;
    int i,j,sum,b;
 
  while (k>MAX || n>MAX)
    {
        printf("Enter k,n: ");
        scanf("%d,%d",&k,&n);
    }
 
    for(i=0; i<k; i++)
    {
        for(j=0; j<n; j++)
        {
            printf("Enter series %d element %d: ",i,j);
            scanf("%d",&TheArr[i][j]);
        }
    }
 
    for(i=0; i<k; i++)
    {
        b=0;
        sum=0;
        for(j=0; j<n; j++)
        {
            sum+=TheArr[i][j];
            if(TheArr[i][j]==2)
                b=1;
        }
        if(b==1)
            printf("Sum = %d\n",sum);
        else
            printf("Sum = 0\n");
    }
    return 0;
}

Объяснение кода листинга программы

В этом коде:

  1. Объявляется массив TheArr размером MAX х MAX.
  2. Пользователю предлагается ввести k и n (количество строк и столбцов массива).
  3. Затем пользователь вводит все элементы массива по строкам.
  4. После заполнения массива, программа проверяет каждый элемент массива на равенство 2.
  5. Если элемент равен 2, то программа вычисляет сумму всех элементов этой строки и выводит ее.
  6. Если элемент не равен 2, то программа выводит 0. Список переменных:
  7. TheArr - массив для хранения чисел.
  8. k - количество строк в массиве.
  9. n - количество столбцов в массиве.
  10. i, j - индексы для обхода массива.
  11. sum - переменная для хранения суммы элементов строки.
  12. b - флаг для определения, есть ли в строке число 2.
  13. MAX - максимальное количество элементов в массиве.

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


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

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

15   голосов , оценка 3.6 из 5
Похожие ответы