Заданы два массива{xi} и {yi} (i=от 1 до n).
Сформировать массив{cj} по правилу
cj=yi+xi,если xi>yi
cj=xi*max{yi} если xi<yi
пары xi=yi в формировании нового массива не участвуют.
#include <iostream.h>
#include <conio.h>
#define SIZE 255
using namespace std;
int main(void)
{
int i=0,j=0,n=0,max=0;
int X[SIZE],Y[SIZE],C[SIZE];
cout<<"Vvedite razmernost' massivov"<<endl;
cin>>n;
for (i=0;i<n;i++)
{
cout<<"Vvedite X["<<i<<"]: ";
cin>>X[i];
}
for (i=0;i<n;i++)
{
cout<<"Vvedite Y["<<i<<"]: ";
cin>>Y[i];
max=Y[0];
if (Y[i]>max)
max=Y[i];
}
for (j=0;j<n;j++)
{
if(X[j]>Y[j])
C[j]=(Y[j]+X[j]);
if(X[j]<Y[j])
C[j]=X[j]*max;
if(X[j]==Y[j])
C[j]=0;
}
cout<<"Polychivshiysya massiv:"<<endl;
for (j=0;j<n;j++)
{
cout<<C[j]<<" ";
}
getch();
и задача два:задан в массиве вещественных чисел {aij} i и j от т1 до n, упорядочить по убыванию столбец,сумма элементов которого больше заданного числа B
#include <stdlib.h>
#include <stdio.h>
#include <iostream.h>
void main(){
int n,b;
cout<<"введите количество элементов в строке и столбце";
cin>>n;
int a[][];
a=new int [n]; //создание массива а (динамического)
for (int i=0;i<n;i++) for (int i=0;i<n;i++)
for (int j=0;i<n;j++)
cout<<a[i][j];
int a[i]=new int [n];
for (int i=0;i<n;i++)//заполнение
for (int j=0;i<n;j++)
cin>>a[i][j];
for (int i=0;i<n;i++)
for (int j=0;i<n;j++)
cout<<a[i][j];
cout<<"введите B";
cin>>b;
int B[]=new int [n]
for (int i=0;i<n;i++)//заполнение B
{B[i]=0;
for (int j=0;i<n;j++)
B[i]+=a[j][i]
}
double х; int j;//сортировка
for ( int i=1; i < m; i++) {
х = B[i];
for ( int k=0; k < n; k++)
c[k]=a[k][i];
for ( j=i-1; j>=0 && B[j] < х; j--)
{B[j+1] = B[j];
for ( int k=0; k < n; k++)
a[k][j+1]=a[k][j];}
B[j+1] = х;
for ( int k=0; k < n; k++)
a[k][j+1]=c[k];
}
for (int i=0;i<n;i++)
for (int j=0;i<n;j++)
cout<<a[i][j];
}
заранее всем спасибо
Задача №1:
for (i=0;i<n;i++)
{
cout<<"Vvedite Y["<<i<<"]: ";
cin>>Y[i];
max=Y[0];
if (Y[i]>max)
max=Y[i];
}
тут ошибка, вынеси max = Y[0] за пределы цикла for, а то у тебя получается каждый раз при итерации цикла переменная max становится равной первому элементу массива, и ты всё время сравниваеш только с первым элементом, короче надо так:
for (i=0;i<n;i++)
{
cout<<"Vvedite Y["<<i<<"]: ";
cin>>Y[i];
}
max=Y[0];
for (i=0;i<n;i++)
{
if (Y[i]>max)
max=Y[i];
}
Во второй задаче я чего то недопонимаю , вот вы просите юзверя ввести b:
cout<<"введите B";
cin>>b;
А где дальше вы сравниваете сумму элементов ваших столбцов массива с этим самым b? А по задаче должны: "упорядочить по убыванию столбец, сумма элементов которого больше заданного числа B"
так, получаетсясравнение , а уж затем запускуется сортировку,? а как это примернобудет выглядеть?
"for (int i=0;i<n;i++) for (int i=0;i<n;i++)
for (int j=0;i<n;j++)"
В чём вся сермяжная истина сего куска кода?
"for (int i=0;i<n;i++) for (int i=0;i<n;i++)
for (int j=0;i<n;j++)
cout<<a[i][j];
int a[i]=new int [n];"
И вообще бред это: даже не смотря на тот непонятный кусок с циклами, полностью отсутствуют операторные скобки, не отводится память под массив, идёт чтение из памяти не принадлежащей программе. Дальше даже разбираться неохота.
Итог: программу надо отрабатывать в дебаггере автору темы, иначе даже не поймёт отчего тут ошибки.
спасибо)
"Помогите найти ошибку в Коде"
- А Debugger то зачем???))
компилятора под рукой нет.
А нас учили, что бОльшую часть ошибок можно отловить дебаггеря прогу по бумажке. И выполнять не так как тебе хотелось бы, чтобы она работала, а как она реально написана. Попробуй, может поможет.
Да и что за отмазка в наши дни: "компилятора под рукой нет"? Бесплатные компиляторы: GNU GCC (g++) + текстовый редактор emacs + дебаггер cgdb или xgdb ( я молчу про gdb), Microsoft Visual C++ 2008/2010 Express Edition, на любом форуме можно нарыть ссылку на олдскульный Borland C++ 3.1. Это только то, что пришло в голову моментально.
Геннадий, тогда ясно)