Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > IT форум > Помощь студентам
Регистрация

Восстановить пароль

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 28.12.2008, 18:46   #1
saleens7
Пользователь
 
Регистрация: 11.10.2008
Сообщений: 34
Вопрос Помогите решить задачу в С++

Пожалуйста решите задачку в С++. "Записать положительные элементы массива X=(x1,x2,…, xn) подряд в массив Y=(y1,y2,…, yk). Найти максимальный элемент массива Y и его номер. (for)" обьясните если не трудно сам код... а то я разобраться не магу... Зарание большое спасибо!
saleens7 вне форума Ответить с цитированием
Старый 28.12.2008, 19:26   #2
Sazary
В тени
Старожил
 
Аватар для Sazary
 
Регистрация: 19.12.2008
Сообщений: 5,788
По умолчанию

Можно сделать короче, но так более наглядно. Думаю, "лишние" циклы вы удалить сможете.
Код:
#include <iostream>
#include <conio.h>

using namespace std;

int main(){
int n,i,k,max;
int *X,*Y;

cout<<"Enter n: ";
cin>>n; cout<<endl;
X = new int[n];
Y = new int[n];
// заполнение массива X
for(i=0;i<n;i++)
 {
  cout<<"X["<<i<<"]= ";
  cin>>X[i]; cout<<endl;
    }
//----
// пишем положительные элементы в Y
k=0;
for(i=0;i<n;i++)
  if(X[i]>0) Y[k++]=X[i];
//----
// ищем максимальным элемент
max = Y[0];
for(i=1;i<k;i++)
 if(Y[i]>max) max=Y[i];
//-------------
// выводим массив X, потом Y, а потом максимальный элемент
cout<<"Massiv X:"<<endl;
for(i=0;i<n;i++)
 cout<<X[i]<<" ";
cout<<endl;
cout<<"Massiv Y:"<<endl;
for(i=0;i<k;i++)
 cout<<Y[i]<<" ";
cout<<endl;
cout<<"Maximum = "<<max<<endl;

delete X;
delete Y;
getch();
return 0;
}
Вполне очевидно, чтобы что-то понять, необходимо книги читать.
Не нужно плодить бессмысленных тем. Вас Поиск избавит от многих проблем.

___________________________________ ___________________________________ _______
[=Правила форума=]_____[Поиск]_____[Литература по С++]____[Литература. Паскаль]
Sazary вне форума Ответить с цитированием
Старый 28.12.2008, 19:35   #3
saleens7
Пользователь
 
Регистрация: 11.10.2008
Сообщений: 34
По умолчанию

Огромнейшее вам спасибо SAZARY! Всё прекрассно сделали! А можно вас попрасить ещё одну задачку посмотреть, плиз?
saleens7 вне форума Ответить с цитированием
Старый 28.12.2008, 19:41   #4
Sazary
В тени
Старожил
 
Аватар для Sazary
 
Регистрация: 19.12.2008
Сообщений: 5,788
По умолчанию

saleens7 Посмотреть могу. Только по правилам: одна задача - одна тема )
Вполне очевидно, чтобы что-то понять, необходимо книги читать.
Не нужно плодить бессмысленных тем. Вас Поиск избавит от многих проблем.

___________________________________ ___________________________________ _______
[=Правила форума=]_____[Поиск]_____[Литература по С++]____[Литература. Паскаль]
Sazary вне форума Ответить с цитированием
Старый 28.12.2008, 19:49   #5
saleens7
Пользователь
 
Регистрация: 11.10.2008
Сообщений: 34
По умолчанию

Может тогда создать новую тему? Мне не сложно,только это на что влияет? Вот задание: "Вычислить вектор значений разности между наибольшим и наименьшим элементами для каждого столбца.
" а вот небольшое пояснение: "Необходимо выполнить заданную обработку числового двумерного массива, имеющего произвольное количество строк(N) и столбцов(M). N <= 7, M <= 5" Я воще не въехал в это задание..
saleens7 вне форума Ответить с цитированием
Старый 28.12.2008, 20:13   #6
Sazary
В тени
Старожил
 
Аватар для Sazary
 
Регистрация: 19.12.2008
Сообщений: 5,788
По умолчанию

saleens7 Теперь уже ладно )
А что сложного вы тут увидели?

Код:
#include <iostream>
#include <conio.h>
#include <time.h> // нужно для генератора случ.чисел
#include <stdio.h>
using namespace std;

int main(){
 int N,M,**matr,*V,i,j,min,max;

cout<<"Enter N: ";
cin>>N;
cout<<"\nENter M: ";
cin>>M; cout<<endl;
// создаем и заполняем матрицу
srand(time(NULL));
matr = new int*[N];
for(i=0;i<N;i++)
 {
   matr[i] = new int[M];
   for(j=0;j<M;j++)
     {
      matr[i][j] = rand()%100;
      printf("%4d",matr[i][j]);    
     }
    cout<<endl; 
    }
 //---------
// теперь создаем и вычисляем вектор
cout<<endl;
cout<<"Vector V:"<<endl;
V = new int[M];
for(j=0;j<M;j++)
 {
   min = max = matr[0][j];
   for(i=0;i<N;i++)
     {
      if(matr[i][j]>max) max=matr[i][j];
      if(matr[i][j]<min) min=matr[i][j];   
     }     
    V[j] = max - min;    
  printf("%4d",V[j]);  
    } 
    
// Удаляем матрицу и вектор
for(i=0;i<N;i++)
 delete matr[i];
delete matr;  
delete V;
    
getch();
return 0; 
}
Вполне очевидно, чтобы что-то понять, необходимо книги читать.
Не нужно плодить бессмысленных тем. Вас Поиск избавит от многих проблем.

___________________________________ ___________________________________ _______
[=Правила форума=]_____[Поиск]_____[Литература по С++]____[Литература. Паскаль]
Sazary вне форума Ответить с цитированием
Старый 28.12.2008, 20:20   #7
saleens7
Пользователь
 
Регистрация: 11.10.2008
Сообщений: 34
По умолчанию

Вау...матрица сама заполняется...Извините я не указал, нужно этот матрицу в ручную заполнять...простите, вы можете это исправить?

Последний раз редактировалось saleens7; 28.12.2008 в 20:27.
saleens7 вне форума Ответить с цитированием
Старый 28.12.2008, 20:32   #8
Sazary
В тени
Старожил
 
Аватар для Sazary
 
Регистрация: 19.12.2008
Сообщений: 5,788
По умолчанию

Замените:
Код:
srand(time(NULL));
matr = new int*[N];
for(i=0;i<N;i++)
 {
   matr[i] = new int[M];
   for(j=0;j<M;j++)
     {
      matr[i][j] = rand()%100;
      printf("%4d",matr[i][j]);    
     }
    cout<<endl; 
    }
на
Код:
matr = new int*[N];
for(i=0;i<N;i++)
 {
   matr[i] = new int[M];
   for(j=0;j<M;j++)
     {
      printf("Enter matr[%d][%d]: ",i,j);
      cin>>matr[i][j];
     }
    cout<<endl;
    }
И эту строчку можно удалить:
Код:
#include <time.h> // нужно для генератора случ.чисел
Вполне очевидно, чтобы что-то понять, необходимо книги читать.
Не нужно плодить бессмысленных тем. Вас Поиск избавит от многих проблем.

___________________________________ ___________________________________ _______
[=Правила форума=]_____[Поиск]_____[Литература по С++]____[Литература. Паскаль]
Sazary вне форума Ответить с цитированием
Старый 28.12.2008, 20:40   #9
saleens7
Пользователь
 
Регистрация: 11.10.2008
Сообщений: 34
По умолчанию

Спасибо вам!!!! Очень благодарен что взялись за это дело! Вы очень хорошо разбираетесь в С++ ! Еслиб не вы я бы незнаю что делал..
saleens7 вне форума Ответить с цитированием
Старый 28.12.2008, 20:44   #10
Sazary
В тени
Старожил
 
Аватар для Sazary
 
Регистрация: 19.12.2008
Сообщений: 5,788
По умолчанию

saleens7 Рад помочь )
Вполне очевидно, чтобы что-то понять, необходимо книги читать.
Не нужно плодить бессмысленных тем. Вас Поиск избавит от многих проблем.

___________________________________ ___________________________________ _______
[=Правила форума=]_____[Поиск]_____[Литература по С++]____[Литература. Паскаль]
Sazary вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Помогите решить задачу... SlipKorn Microsoft Office Excel 4 25.09.2008 11:23
Помогите решить задачу!!! W_P Паскаль, Turbo Pascal, PascalABC.NET 1 04.03.2008 21:54