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

помогите найти ошибку в коде на Си

- дана матрица размером 3х4 и одномерный массив из 4 элементов, напечатать номера строк, которые будут совпадать с заданным одномерным массивом. вот мой код, ответ он выдает верно, но выводит числа по несколько раз
#include <stdio.h>
#include <stdlib.h>

int main()
{
int a[3][4];
int m[4];
int i, j;
for (i=0; i<3; i++)
for (j=0; j<4; j++)
{
printf("a[%d][%d] = ", i+1, j+1);
scanf("%d", &a[i][j]);
}

for (j=0; j<4; j++)
{
printf("m[%d] = ", j+1);
scanf("%d", &m[j]);
}

for (i=0; i<3; i++)
{
for (j=0; j<4; j++)
if (a[i][j]==m[j])
printf("%d ", i+1);

}

system("pause");
return 0;

}мой результат, а должен выдать только 1 и 3
#include <stdio.h>
#include <stdlib.h>
#define ROWS 3
#define COLS 4
int main(void) {
int a[ROWS][COLS];
int m[COLS];
int i, j;
for (i = 0; i < ROWS; i++) {
for (j = 0; j < COLS; j++) {
printf("a[%d][%d] = ", i + 1, j + 1);
scanf("%d", &a[i][j]);
}
}
printf("\n");
for (j = 0; j < COLS; j++) {
printf("m[%d] = ", j + 1);
scanf("%d", &m[j]);
}
for (i = 0; i < ROWS; i++) {
for (j = 0; j < COLS; j++) if (a[i][j] != m[j]) break;
if (j < COLS) continue;
printf("%d ", i + 1);
}
printf("\n");
system("pause");
return 0;
}
Crazy Boy
Crazy Boy
72 324
Лучший ответ
То, что написано, то и выдает. Написано в цикле для каждого совпадения элементов массивов печатать номер строки - программа и печатает. в строке 4 элемента, всего две строки совпадает полностью 2*4 =8 .
Ну скажем так, результат верный потому что вам везет - а вывод не верный - потому что задача решена не верно. Что вы делаете вы водите строку при любом совпадение элемента вектора с эелементом массива. Если я правильно понял задачу - то вы дожны были проверить всю строку - получить резултат совпало или нет, а потом уже выводить результат. Оценочная функция должна быть такой
bool tets_row(int *a,int n_size,int *m){

for(int i=0;i<n_size,i++)
if(a[i]-m[j]!=0) return false;
return 0;
}
Sultan Abdikalikov
Sultan Abdikalikov
35 594
ответ выдает верно только для твоего примера. введи m = {1, 3, 5, 7} и удивись