Дан массив размером n•n, элементы которого —целые числа.
Для каждой строки найти номер первого отрицательного элемента и записать данные в новый массив.
P.s. если есть возможность напишите пожалуйста программу простыми операторами, ибо я только начиная программировать и сложные не очень понятны
C/C++
Помогите решить задачу на языке программирования С++
#include <iostream>
#include <cmath>
#include <ctime>
#include <cstdlib>
using namespace std;
int main()
{
const int n = 5;
int old_data[n][n]; // изначальный массив
int new_data[n]; // новый массив
// Как формируется старый массив?
// Я делаю автоматически с помощью "случайных" чисел.
srand(time(NULL)); // чтобы цифры были более случайными.
for(int x = 0; x < n; x++)
{
for(int y = 0; y < n; y++)
{
old_data[x][y] = rand() % 21 * pow(-1.0, rand() % 2);
// показываем, что получилось.
cout << old_data[x][y] << ' ';
}
cout << endl;
}
cout << endl;
// теперь ищем первый отрицательный в каждой строке
int z = 0; // для нового массива
for(int x = 0; x < n; x++)
{
for(int y = 0; y < n; y++)
{
if(old_data[x][y] < 0)
{
new_data[z++] = old_data[x][y];
// переход на новую строку
y = -1;
x++;
if(x >= n) break;
}
}
}
// печатаем, что получилось.
for(int x = 0; x < z; x++)
{
cout << new_data[x] << ' ';
}
cout << endl;
return 0;
}
#include <cmath>
#include <ctime>
#include <cstdlib>
using namespace std;
int main()
{
const int n = 5;
int old_data[n][n]; // изначальный массив
int new_data[n]; // новый массив
// Как формируется старый массив?
// Я делаю автоматически с помощью "случайных" чисел.
srand(time(NULL)); // чтобы цифры были более случайными.
for(int x = 0; x < n; x++)
{
for(int y = 0; y < n; y++)
{
old_data[x][y] = rand() % 21 * pow(-1.0, rand() % 2);
// показываем, что получилось.
cout << old_data[x][y] << ' ';
}
cout << endl;
}
cout << endl;
// теперь ищем первый отрицательный в каждой строке
int z = 0; // для нового массива
for(int x = 0; x < n; x++)
{
for(int y = 0; y < n; y++)
{
if(old_data[x][y] < 0)
{
new_data[z++] = old_data[x][y];
// переход на новую строку
y = -1;
x++;
if(x >= n) break;
}
}
}
// печатаем, что получилось.
for(int x = 0; x < z; x++)
{
cout << new_data[x] << ' ';
}
cout << endl;
return 0;
}
#include <iostream>
#include <cstdlib>
#include <ctime>
using namespace std;
int main()
{
const int N = 5;
int A[N][N]; srand(time(0));
for(int i = 0; i < N; i++)
{
for(int j = 0; j < N; j++)
{
A[i][j] = -5 + rand() % 11;
cout.width(3);
cout << A[i][j];
}
cout << endl;
}
int B[N] = {-1};
for(int i = 0; i < N; i++)
for(int j = 0; j < N; j++)
if(A[i][j] < 0)
{
B[i] = j;
break;
}
for(int i = 0; i < N; i++)
cout << B[i] << ' ';
cout << endl;
cout << "Press Enter key for continue...";
cin.get(); //cin.get();
return 0;
}
#include <cstdlib>
#include <ctime>
using namespace std;
int main()
{
const int N = 5;
int A[N][N]; srand(time(0));
for(int i = 0; i < N; i++)
{
for(int j = 0; j < N; j++)
{
A[i][j] = -5 + rand() % 11;
cout.width(3);
cout << A[i][j];
}
cout << endl;
}
int B[N] = {-1};
for(int i = 0; i < N; i++)
for(int j = 0; j < N; j++)
if(A[i][j] < 0)
{
B[i] = j;
break;
}
for(int i = 0; i < N; i++)
cout << B[i] << ' ';
cout << endl;
cout << "Press Enter key for continue...";
cin.get(); //cin.get();
return 0;
}
Похожие вопросы
- Помогите решить задачу на языке программирования Си, пожалуйста
- Помогите решить задачу, пожалуйста. (Язык Си)
- Помогите решить задачу по программированию на C++
- Помогите решить задачу по программированию
- Помогите пожалуйста решить задачу на языке С#.
- Решить задачу на языке СИ
- Можете помочь решить задачу по программированию.
- Программирование C++ Помогите решить задачу
- Помогите решить задачу по программированию C++
- Помогите решить задачу по C++!
pow() -- возводит число в степень.
В нашем примере она возводит -1 в степень, чтобы числа были, либо положительными, либо отрицательными, либо равными нулю.