требуется в данном массиве все нули перенести в конец массива
#include<iostream>
#include<ctime>
#include<iomanip>
using namespace std;
const int n = 5;
void instance(int ar[][n], int (* p)[n])
{
for(; p < ar+n; p++)
{
for (int * r = *p; r < *p+n; r++)
{
*r = rand()%90+10;
cout << setw(3) << *r;
}
cout << endl;
}
cout << endl;
}
void main()
{
srand(time(NULL));
int a[n][n];
int (* p)[n] = a;
instance(a,p);
}
Другие языки программирования и технологии
Нужна помощь, Помогите перебрать массив и нули перенести в конец С++
#include <iostream>
#include <ctime>
using namespace std;
void random(int*, int, int);
void print(int*, int, int);
int index(int*, int);
void transform(int*, int, int);
int main() {
srand(static_cast<unsigned int>(time(NULL)));
const int n = 5;
int mx[n][n];
int* ptr = &mx[0][0];
random(ptr, n, n);
print(ptr, n, n);
transform(ptr, n, n);
print(ptr, n, n);
cin.get();
}
void random(int* p, int rw, int cl) {
int i = rw * cl;
while (--i >= 0) *p++ = rand() % 10;
}
void print(int* p, int rw, int cl) {
for (int r = 0; r < rw; ++r) {
for (int c = 0; c < cl; ++c) cout << ' ' << *p++;
cout << '\n';
}
cout << '\n';
}
void transform(int* p, int rw, int cl) {
int s = rw * cl;
int j, k;
for (int i = s - 1, k = i; i >= 0; --i) {
if ((j = index(p, k)) != -1) {
int tmp = p[j];
for (int n = j; n < k; ++n) p[n] = p[n + 1];
p[k] = tmp;
--k;
}
else break;
}
}
int index(int* arr, int size) {
int idx = -1;
for (int i = 0; i < size; ++i) if (arr[i] == 0) { idx = i; break; }
return idx;
}
#include <ctime>
using namespace std;
void random(int*, int, int);
void print(int*, int, int);
int index(int*, int);
void transform(int*, int, int);
int main() {
srand(static_cast<unsigned int>(time(NULL)));
const int n = 5;
int mx[n][n];
int* ptr = &mx[0][0];
random(ptr, n, n);
print(ptr, n, n);
transform(ptr, n, n);
print(ptr, n, n);
cin.get();
}
void random(int* p, int rw, int cl) {
int i = rw * cl;
while (--i >= 0) *p++ = rand() % 10;
}
void print(int* p, int rw, int cl) {
for (int r = 0; r < rw; ++r) {
for (int c = 0; c < cl; ++c) cout << ' ' << *p++;
cout << '\n';
}
cout << '\n';
}
void transform(int* p, int rw, int cl) {
int s = rw * cl;
int j, k;
for (int i = s - 1, k = i; i >= 0; --i) {
if ((j = index(p, k)) != -1) {
int tmp = p[j];
for (int n = j; n < k; ++n) p[n] = p[n + 1];
p[k] = tmp;
--k;
}
else break;
}
}
int index(int* arr, int size) {
int idx = -1;
for (int i = 0; i < size; ++i) if (arr[i] == 0) { idx = i; break; }
return idx;
}
Начать с того, что у тебя двумерный массив (5 по 5*sizeof(int)). Что ты называешь тут концом?
Похожие вопросы
- Люди! Нужна помощь. Помогите настроить Оперу
- Срочно нужна помощь. помогите пожалуйста найти ошибку
- Нужна помощь!!!!Помогите при установке винды форматнул не тот диск как востоновить данные кто что посоветует?
- Из массива JJ(100) в массив NN(100) перенести числа(элементы массива): сначала нечетные, а затем четные.
- Нужна помощь с массивом с++
- сформировать с помощью ДСЧ одномерный массив и вывести его на печать
- сформировать с помощью ДСЧ одномерный массив и вывести его на печать .
- Плиз помогите!!! В массиве А размерностью nxm Найти сумму и количество всех элементов массива.
- Помогите с массивами! Найти и вывести на экран сумму нечётных элементов массива и количество отрицательных.
- Двумерный массив/Турбо паскаль/нужна помощь=( А(12)Заменить отрицательные элементы стоящие на чётных местах цифрой 8.