Консультация № 110239
20.11.2007, 09:45
0.00 руб.
0 3 3
Даны вещественные массивы А[4][6], B[4][6]. Для каждого массива определить номер столбца с наибольшим количеством положительным элементов.

Приложение:
plz помагите сделать... и если мона на4ало тоже напишите!)

Обсуждение

Неизвестный
20.11.2007, 22:21
общий
это ответ
Здравствуйте, Лапотников Ден Александрович!

Странно...это уже третья подобная просьба за последние трое суток...Но да ладно...Держите программу!

Приложение:
#include<iostream.h>#include<conio.h>void main(){float A[4][6],B[4][6];int cnt,max;int A_ind,B_ind;int i,j;clrscr();cout<<"Input elemebts of array A: ";for(i=0;i<4;i++) { for(j=0;j<6;j++) { gotoxy(j*6+1,i+2); cin>>A[i][j]; } }cout<<"Input elemebts of array V: ";for(i=0;i<4;i++) { for(j=0;j<6;j++) { gotoxy(j*6+1,i+7); cin>>B[i][j]; } }max=0;for(j=0;j<6;j++) { cnt=0; for(i=0;i<4;i++) { if(A[i][j]>0) { cnt++; } } if(cnt>max) { max=cnt; A_ind=j; } }max=0;for(j=0;j<6;j++) { cnt=0; for(i=0;i<4;i++) { if(B[i][j]>0) { cnt++; } } if(cnt>max) { max=cnt; B_ind=j; } }cout<<"\nV massive A "<<A_ind<<"-iy stolbec";cout<<"\nV massive B "<<B_ind<<"-iy stolbec";getch();}
Неизвестный
21.11.2007, 03:58
общий
это ответ
Здравствуйте, Лапотников Ден Александрович!
Вот подобные вопросы №№<a href=http://rusfaq.ru/info/question/110170>110170</a>, <a href=http://rusfaq.ru/info/question/110166>110166</a>. В них вы сможете найти достаточное количество решений вашей задачи. В приложении мой вариант...

Приложение:
#include <stdlib.h>#include <time.h>#include <vector>#include <algorithm>#include <iostream>using namespace std;typedef vector<vector<double> > matrix;double my_rand() { static const int r_limit = 100; return (rand()%(r_limit*2) - r_limit) + static_cast<double>(1./static_cast<double>(rand()%r_limit));}int main(int argc, char* argv[]) { const int n = 4; const int m = 6; matrix A; matrix B; A.resize(n); B.resize(n); int i, j; for(i=0; i<n; i++) { A[i].resize(m); B[i].resize(m); } srand((unsigned) time(NULL)); for(i=0; i<n; i++) { generate(A[i].begin(), A[i].end(), my_rand); generate(B[i].begin(), B[i].end(), my_rand); } cout << "Array A:" << endl; for(i=0; i<n; i++) { for(j=0; j<m; j++) cout << A[i][j] << "\t"; cout << endl; } cout << endl << "Array B:" << endl; for(i=0; i<n; i++) { for(j=0; j<m; j++) cout << B[i][j] << "\t"; cout << endl; } vector<double> v; v.resize(m); for(i=0; i<m; i++) { v[i] = 0; for(j=0; j<n; j++) if(A[j][i] > 0.) v[i]++; } cout << endl << "In array A column with index " << distance(v.begin(), max_element(v.begin(), v.end())) << " count of positive elements is maximum" << endl; for(i=0; i<m; i++) { v[i] = 0; for(j=0; j<n; j++) if(B[j][i] > 0.) v[i]++; } cout << "In array B column with index " << distance(v.begin(), max_element(v.begin(), v.end())) << " count of positive elements is maximum" << endl; return 0;}
Неизвестный
21.11.2007, 05:34
общий
это ответ
Здравствуйте, Лапотников Ден Александрович!
В программе надо только свои массивы написать. Например:
float A[4][6]={0}, B[4][6]={0}; надо заменить на
float A[4][6]={{1,2,3,4,5,6},{1,2,3,4,5,6}, { и т.д. и для массива B тоже самое

Приложение:
#include <vcl.h>#include <conio.h>#include <stdio.h>#pragma hdrstop//---------------------------------------------------------------------------#pragma argsusedint main(int argc, char* argv[]){ float A[4][6]={0}, B[4][6]={0}; int KolA[6] = {0}, KolB[6] = {0}, MaxA = 0, MaxB = 0, MColA = 0, MColB = 0; for (int i = 0; i < 6; i++) { for (int k = 0; k < 4; k++) { if (A[k][i]>0) KolA[i] = KolA[i]+1; if (B[k][i]>0) KolB[i] = KolB[i]+1; } } for (int i = 0; i < 6; i++) { if (KolA[i] > MaxA) { MColA = i; MaxA = KolA[i]; } if (KolB[i] > MaxB) { MColB = i; MaxB = KolB[i]; } } printf("Номер столбца с наибольшим количеством положительным элементов в массиве\n"); printf("A - %f\n", MColA); printf("B - %f\n", MColB); getch(); return 0;}
Форма ответа