Консультация № 108562
08.11.2007, 14:10
0.00 руб.
0 5 5
Хелп,совершенно непонимаю С++, дали задачу,но как ее сделать незнаю:дан вещественный массив B[5][4]?определить целочисленный массив D[5] по следующему правилу: D[i]=1,если сумма элементов i-ой строки больше 0,D[i]=0 в противном случае.Значение переменной i изменяется от 0 до 4.

Обсуждение

Неизвестный
08.11.2007, 14:19
общий
это ответ
Здравствуйте, Hikaru!

for(int i=0; i<5; i++)
{
if (B[i][0]+B[i][1]+B[i][2]+B[i][3]>0)
D[i]=1;
else
D[i]=0;
}
Неизвестный
08.11.2007, 16:18
общий
это ответ
Здравствуйте, Hikaru!
Смотрите код в приложении. Думаю, из комментариев всё будет ясно.
P.S.: Среда - VS 2005

Приложение:
#include "stdafx.h"#include <iostream>#define n 4 //объявим размерности массива как константы#define m 5using namespace std;void main (){ float b[m][n]; //объявление массивов int d[m]; float s = 0; //сумма for (int i=0; i<m; i++) //ввод массива b for (int j=0; j<n; j++) { cout << "Vvedite b[" << i << ‘,‘ << j << "]\n"; cin >> b[i][j]; } for (int i=0; i<m; i++) { s = 0; //обнуляем переменную для суммы for (int j=0; j<n; j++) s+=b[i][j]; //считаем сумму элементов строки if (s>0) d[i]=1; //если сумма больше 0, присваиваем в d[i] 1 else d[i]=0; //иначе 0 } cout << "Resultat: "; for (int i=0; i<m; i++) //вывод результата - массива d cout << d[i] << ‘ ‘;}
Неизвестный
09.11.2007, 05:16
общий
это ответ
Здравствуйте, Hikaru!

В приложении программа с ответом на ваш вопрос

Приложение:
#include <iostream>#include <conio.h>using namespace std;#define X 5#define Y 4void main (){// Исходный массив Bdouble b[X][Y] = { 1.0,-2.0,-3.0, 0.0, 1.0, -4.0, 5.0,-5.0, 2.0, 8.0, 1.0, 5.0,-8.0,-2.0, 5.0, 5.0,-2.0, 7.0,-3.0, 7.0 };int d[X]; // массив Ddouble s; int i, j; for(i = 0; i<X; i++) { // проход по строкам массив B s = 0; // обнуление временной переменной for(j = 0; j<Y; j++) s += b[i][j]; // вычисление суммы чисел в строке if(s > 0) d[i] = 1; else d[i] = 0; // вычисление значения элемента массива D } for(i = 0; i<X; i++) cout << i << " " << d[i] << endl; // вывод массива D getch (); // ожидаем нажатия клавиши}
Неизвестный
09.11.2007, 21:10
общий
это ответ
Здравствуйте, Hikaru!

Судя по Вашей первой оценки сделал выводы :)
Держите рабочую программу(даже с красивым вводом матрицы :)
См. приложение

Приложение:
#include<iostream.h>#include<conio.h>void main(){float B[5][4];int D[5];int i,j,Sum;clrscr();cout<<"Input elements of array: "; for(i=0;i<5;i++) { for(j=0;j<4;j++) { gotoxy(j*6+1,i+2); cin>>B[i][j]; } } for(i=0;i<5;i++) { Sum=0; for(j=0;j<4;j++) { Sum+=B[i][j]; } if(Sum>0) { D[i]=1; } else { D[i]=0; } }cout<<"Result: "; for(i=0;i<5;i++) { cout<<"\nD["<<i<<"] = "<<D[i]; }getch();}
Неизвестный
11.11.2007, 10:51
общий
это ответ
Здравствуйте, Hikaru!
Т.к. совершенно не понимаете С++ привожу программу полностью.
Это для VC 6.0. Для других версий языка может быть немного другой ввод-вывод.
Алгоритм расчета будет работать везде.

Приложение:
#include <iostream.h>int main() { int B[5][4]; int D[5]; int s,i,j,n,m;cout << "Vvedite razmer n m" << endl; // В вашем случае n=5, m=4 cin >> n >> m; for (i=0; i<n; i++) for (j=0; j<m; j++) { cout << "Vvedite B[" << i << "][" << j << "]: " ; cin >> B[i][j]; }cout << "Vveden massiv B:" << endl; for (i=0; i<n; i++) { for (j=0; j<m; j++) cout << B[i][j] << " "; cout << endl; }for (i=0; i<n; i++) // Перебор всех строк (от 0 до 4){ s=0; // Начальное значение суммы равно нулюfor (j=0; j<m; j++) s+=B[i][j]; // Расчет суммы элементов i-той строкиif (s>0) D[i]=1; // Проверка else D[i]=0;}cout << "Result massiv D: "; for (i=0; i<n; i++) cout << D[i] << " "; cout << endl;return 0; }
Форма ответа