//Для заданной матрицы размером 8 на 8 найти такие k, что k-ая строка матрицы совпадает с k-ым столбцом.
//Найти сумму элементов в тех строках, которые содержат хотя бы один отрицательный элемент.
// My code
#include
#include
#include
#include
using namespace std;
int main()
{
setlocale(LC_ALL, "Rus");
int N = 8;
int A[8][8];
int i, j, k = 0, count = 0, number;
for (i = 0; i < N; i++)
{
for (j = 0; j < N; j++)
{
scanf_s("%d", &number);
A[i][j] = number;
}
}
for (i = 0; i < N; i++)
{
for (j = 0; j < N; j++)
{
if (A[i][j] == A[j][i])
{
count++;
}
if (count == N)
{
printf("%d строка совпадает с %d столбцом", i + 1, i + 1);
k++;
}
}
count = 0;
}
if (k == 0) {
printf("Нет совпадений");
}
int result = 0;
for (i = 0; i < N; i++)
{
for (j = 0; j < N; j++)
{
if (A[i][j] < 0)
{
for (count = 0; count < N; count++)
{
result += A[i][count];
}
printf("Сумма на %d строке равна %d", i + 1, result);
j = N;
result = 0;
}
}
}
return 0;
}
1 3 1 0 -3 8 1 1
0 3 3 1 21 9 0 3
1 0 1 0 7 3 9 6
9 3 0 1 1 7 4 4
7 7 -3 9 0 0 5 4
6 3 8 9 7 0 4 0
4 1 1 9 0 0 1 3
3 0 1 9 1 0 2 8
При вводе этих данных определяет сумму, не выводит что 1 строка равна 3 столбцу
C/C++
Не работает код
#include <stdlib.h>
#include <stdio.h>
#include <stdbool.h>
#define n 8
void print(int* box) {
int i;
for (i = 0; i < n; ++i) printf("%4i", box[i]);
puts("");
}
_Bool equals(int* a, int* b) {
int i;
for (i = 0; i < n; ++i) if (a[i] != b[i]) return false;
return true;
}
_Bool some(int* box) {
int i;
for (i = 0; i < n; ++i) if (box[i] < 0) return true;
return false;
}
int sum(int* box) {
int i;
int s = 0;
for (i = 0; i < n; ++i) s += box[i];
return s;
}
int main(void) {
int a[n][n] = {
{ 1, 3, 1, 0, -3, 8, 1, 1 },
{ 0, 3, 3, 1, 21, 9, 0, 3 },
{ 1, 0, 1, 0, 7, 3, 9, 6 },
{ 9, 3, 0, 1, 1, 7, 4, 4 },
{ 7, 7, -3, 9, 0, 0, 5, 4 },
{ 6, 3, 8, 9, 7, 0, 4, 0 },
{ 4, 1, 1, 9, 0, 0, 1, 3 },
{ 3, 0, 1, 9, 1, 0, 2, 8 }
};
int i, j, k;
int box[n];
for (i = 0; i < n; ++i) print(a[i]);
puts("");
system("chcp 1251 > nul");
for (i = 0; i < n; ++i) {
for (j = 0; j < n; ++j) {
for (k = 0; k < n; ++k) box[k] = a[k][j];
if (equals(a[i], box)) printf("Строка %i == Столбец %i\n", i + 1, j + 1);
}
}
puts("");
for (i = 0; i < n; ++i) {
if (some(a[i])) {
int s = sum(a[i]);
printf("Строка: %i Сумма: %i\n", i + 1, s);
}
}
system("pause > nul");
return 0;
}
#include <stdio.h>
#include <stdbool.h>
#define n 8
void print(int* box) {
int i;
for (i = 0; i < n; ++i) printf("%4i", box[i]);
puts("");
}
_Bool equals(int* a, int* b) {
int i;
for (i = 0; i < n; ++i) if (a[i] != b[i]) return false;
return true;
}
_Bool some(int* box) {
int i;
for (i = 0; i < n; ++i) if (box[i] < 0) return true;
return false;
}
int sum(int* box) {
int i;
int s = 0;
for (i = 0; i < n; ++i) s += box[i];
return s;
}
int main(void) {
int a[n][n] = {
{ 1, 3, 1, 0, -3, 8, 1, 1 },
{ 0, 3, 3, 1, 21, 9, 0, 3 },
{ 1, 0, 1, 0, 7, 3, 9, 6 },
{ 9, 3, 0, 1, 1, 7, 4, 4 },
{ 7, 7, -3, 9, 0, 0, 5, 4 },
{ 6, 3, 8, 9, 7, 0, 4, 0 },
{ 4, 1, 1, 9, 0, 0, 1, 3 },
{ 3, 0, 1, 9, 1, 0, 2, 8 }
};
int i, j, k;
int box[n];
for (i = 0; i < n; ++i) print(a[i]);
puts("");
system("chcp 1251 > nul");
for (i = 0; i < n; ++i) {
for (j = 0; j < n; ++j) {
for (k = 0; k < n; ++k) box[k] = a[k][j];
if (equals(a[i], box)) printf("Строка %i == Столбец %i\n", i + 1, j + 1);
}
}
puts("");
for (i = 0; i < n; ++i) {
if (some(a[i])) {
int s = sum(a[i]);
printf("Строка: %i Сумма: %i\n", i + 1, s);
}
}
system("pause > nul");
return 0;
}
Похожие вопросы
- Не работает код с++
- Почему не работает код?
- Не работает код
- Не работает код на с++
- Не работает код на c++
- Помогите разобраться с тем, как работает код
- Не работает код на c++
- Написал код для языка C, но работает не правильно
- Ошибки в коде. Почему не работает и как сделать чтобы заработало ?
- Объясните как работает этот участок кода, я что то не много запутался с механикой работы.