АГ
Антон Гомелько

помогите пожалуйста проверить код на языке си, программа работает неверно - не выдает сумму массива Z

Вычислить сумму
положительных элементов каждого из
массивов X[N],
Y[M],
Z[K]
и проверить, кратна ли она трем. N=10 M=12 K=15
#include
#include
#include
int main()
{
int N, M, K, X[ 10 ], Y[ 12 ], Z[ 15 ], d, sum = 0;
printf ("Vvedite elementu matrisu X: \n");
for ( N = 0; N<10; N++ )
{
printf ( " X [%d] = ", N+1);
scanf ( "%d", & X [N] );
}
printf ("Vvedite elementu matrisu Y: \n");
for (M =0; M<12; M++)
{
printf( "Y [%d] = ", M+1);
scanf( "%d", & Y [M] );
}
printf ("Vvedite elementu matrisu Z:\n");
for ( K = 0; K<15; K ++)
{
printf ( "Z [%d] =", K+1);
scanf ("%d" , & Z [K] );
}
if ( X [N] > 0 )
{
sum+= X[N];
printf("summa X =%d\n",sum);

if (d = sum % 3 = = 0, d)
printf("summa delitsa\n", d);}

if (Y[M]>0)
{
sum+= Y[M];
printf("summa Y =%d\n",sum);
if (d = sum %3 = = 0, d)
printf("summa delitsa\n", d);}

if (Z[K]>0)
{
sum+= Z[K];
printf("summa Z =%d\n",sum);
if (d = sum %3 = =0, d)
printf("summa delitsa\n",d);}

system("PAUSE");
return 0;
}

Амира Ильяшук
Амира Ильяшук

/*
Вычислить сумму
положительных элементов каждого из
массивов X[N],
Y[M],
Z[K]
и проверить, кратна ли она трем. N=10 M=12 K=15
*/
#include
#include
#include
#include

int main(){
srand(time(0));

int a = -10, b = 10;
const int N=10, M=12, K=15;
int X[N],Y[M],Z[K];
int sum(0);

// заполняем случайными значениями первый массив
for(int i(0); i < N; i++){
X[i] = rand() % (b - a + 1) + a; // заполняем случайными значениями от а до б
printf("%i ",X[i]); // выводим на экран
if(X[i] > 0) sum +=X[i]; // находим сумму положительных элементов массива
}
printf("\n");
// заполняем второй массив
for(int i(0); i < M; i++){
Y[i] = rand() % (b - a + 1) + a;
printf("%i ",Y[i]);
if(Y[i] > 0) sum +=Y[i];
}
printf("\n");
// заполняем третий
for(int i(0); i < K; i++){
Z[i] = rand() % (b - a + 1) + a;
printf("%i ",Z[i]);
if(Z[i] > 0) sum +=Z[i];
}
printf("\n");

printf("sum = %i\n",sum); // выводим сумму
if(sum % 3) printf("NEKRATNA"); // выводим кратность/некратность
else printf("KRATNA");

getch();
return 0;
}

КТ
Костя Точкин

поразгребав код:
а нафига каждое вычисление вкладывать внутрь другого?
да еще и создавая переменные под каждые значения?

вводи один массив и его обрабатывай за каждый проход.
и будет пофиг сколько там массивов вводится

---
добавка
В "с" каждый повторяющийся чих оформляется отдельной функцией, и не больше чем на пол-экрана, иначе забодаешься распутывать связки.
(объекные языки это деление совсем продолжили - см методы класса)

ТЕ
Татьяна Елисеева

ИМХО она просто постеснялась рассказать всю правду горькую.

Оль, суммы вычисляются в циклах, не?
sum=0;
for ( N = 0; N<10; N++ ) {
if ( X [N] > 0 ) ...
}
А уже после цикла Ваши "printf(...." и "sum %3 == 0"
Для Y и Z аналогично.

Дмитрий Самодумов
Дмитрий Самодумов

Ну, чисто по программе Твоя главная ошибка, что сумма делается не в цикле, а берется просто последний элемент массива.
есть 2 варианта решения 1й. создай свою переменную sum для каждого массива и суммируй её сразу в том же цикле при заполнении массива. потом в конце обрабатываешь и проверяешь все 3 переменных и выдаешь результат.

2й вариант используя одну и ту же переменную, опять же перенеся сумматор в цикл ввода (не забывай сбрасывать переменную перед циклом) после каждого ввода данных массива производить расчет и сразу выдавать результат по уже введенному массиву.

На
Наталья

Сумму массивов X и Y выдает? Без ошибок?

Похожие вопросы
помогите пожалуйста с массивом на языке Си++
язык си, одномерные массивы
Помогите, пожалуйста, составить программы. Тема массивы. Язык Си.
Помогите с программированием пожалуйста на языке СИ. Программа, находящая сумму обратных чисел.
Помогите написать код до программы на языке Си (не на С++)
ПОМОГИТЕ!!!! Пожалуйста написать программу на СИ с массивами и указателями!!!! МАТРИЦА!
Что неправильно в коде? Компилятор выдает ошибку. Язык СИ
Помогите отсортировать массив. Язык СИ (код программы внутри)
помогите написать программу в си с использованием массивов
проверьте пожалуйста код на языке Си