Другие языки программирования и технологии

Помогите пожалуйста найти ошибку, с++

Доброго вечера, помогите пожалуйста, задача : Задано n массивов различной длины. Переставить элементы каждого массива в обратном порядке.
Тема для меня нова, поэтому решил сначала по образцу написать ввод этих массивов, их длинны, и соответственно чисел внутри них, по этому же принципу добавил и вывод, проверить все ли верно, но вот у меня ошибка вот в чем, после ввода 2 чисел программа просто зависает, 1 число отвечает за количество массивов, 2 вводимое число отвечает за количество элементов в 1 массиве, помогите пожалуйста,найти и исправить ошибку что бы у меня заработал ввод вывод, заранее огромное спасибо !

Вот сама программа для ввода и вывода по условию этой задачи, компилятор ошибок не выдает, но после ввода первых 2 чисел она зависает ...

#include<iostream.h>
int main()
{
int n,**a,*b,i,j;
cin>>n; //Количество массивов
a=new int*[n]; //Создали массив с указтелями на массивы

for (i=0; i<n;>>b; //Ввели размер 1 массива
*(a+i)=new int[b]; //Создали 1 массив такого размера

for (j=0; j<b>*(*(a+i)+j); //Ввели созданный 1 массив
}

for (i=0; i
Ваня Лищук
Ваня Лищук
88
> mailru параша
Вы просто не умеете его готовить.

#include <iostream>

using namespace std;

int main() {
int n, **a, *b, i, j;

cin >> n; //Количество массивов
a = new int*[n]; //Создали массив с указтелями на массивы
b = new int[n];

for (i = 0; i < n; ++i) {
cin >> *(b + i); //Ввели размер 1 массива
*(a + i) = new int[*(b + i)]; //Создали 1 массив такого размера
for (j = 0; j < *(b + i); ++j)
cin >> *(*(a + i) + j); //Ввели созданный 1 массив
}
for (i = 0; i < n; ++i) {
for (j = 0; j < *(b + i); ++j)
cout << *(*(a + i) + j) << ' ';
cout << endl;
}
}

Что за извращение с указателями?
ПА
Петр Андреевский
95 995
Лучший ответ
// _71152393
#include <iostream>
#include <ctime>
#include <windows.h>
using namespace std;

int main()
{
srand((unsigned) time(NULL));
int quantity, size, k, temp;
int ** a, * e;
quantity = rand() % 8 + 8;
a = new int * [quantity];
e = new int [quantity];
for (int n = 0; n < quantity; n++, cout << endl)
{
size = rand() % 16 + 5;
e[n] = size;
a[n] = new int [size];
for (int m = 0; m < size; m++)
{
a[n][m] = rand() % 90 + 10;
cout << ' ' << a[n][m];
}
Sleep(1000);
}
for (int n = 0; n < quantity; n++)
{
size = e[n];
k = size - 1;
for (int m = 0; m < size / 2; m++, k--)
{
temp = a[n][m];
a[n][m] = a[n][k];
a[n][k] = temp;
}
}
cout << endl << endl;
for (int n = 0; n < quantity; n++, cout << endl)
{
size = e[n];
for (int m = 0; m < size; m++)
cout << ' ' << a[n][m];
}
for (int n = 0; n < quantity; n++)
delete[] a[n];
delete[] a;
delete[] e;
cin.get();
return 0;
}
Массива b у тебя еще нет, а ты в него уже вводишь числа.. . Надо cin>>a[ i];
И что у тебя за страсть работать с указателями вместо индексов.. . Самому же понятнее будет.
P.S. cout << endl; эквивалентно cout << '\n'; Просто перевод строки в более красиво записанной форме.
P.P.S. "так на парах заставляют) ) " "этот фрагмент ввода нам учитель дал как образец"-
"О, месье знает толк в извращениях! " (из анекдота) ;)
Виталий Бобков
Виталий Бобков
56 928
сделай скрин лучше
mailru параша
cout << endl;
то же что и cout<<"\n";
mailru параша

Как ты прав