Форум программистов, компьютерный форум, киберфорум
C для начинающих
Войти
Регистрация
Восстановить пароль
 
Рейтинг 4.67/6: Рейтинг темы: голосов - 6, средняя оценка - 4.67
9 / 9 / 4
Регистрация: 16.10.2012
Сообщений: 61
1

Вывести все элементы массива в виде матрицы и вывести номер строки массива, в которой каждый элемент равен X.

31.10.2012, 00:14. Просмотров 1237. Ответов 4
Метки нет (Все метки)

Дан двумерный массив N=9, M=10; Вывести все элементы массива в виде матрицы и вывести номер строки массива, в которой каждый элемент равен X.

Подскажите что я сделал не так? В виде матрицы нормально выводит, а вот со второй частью не получается

C
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
#include <stdio.h>
#include <locale.h>
#define N 9
#define M 10
 
int main()
{
    setlocale(LC_ALL, "Russian");
    srand(time(NULL));
    int i,j,arr[N][N], x, count=0;
    printf("Введите X\n");
    scanf("%d", &x);
    for(i=0;i<N;i++)
        for(j=0;j<N;j++)
            arr[i][j]=rand()%2;
    for(i=0;i<N;i++){
        for(j=0;j<M;j++)
        printf("%d\t",arr[i][j]);
        printf("\n");}
    {for(i = 0;i < N;i++)
    for(j = 0;j < M;j++)
    if(arr[i][j] == x){
    count++;
    if(count == N)
    printf("Строка %d", i);
    }
    else
    count = 0;}
    return 0;
}
P.S. числа я специально сделал 1 и 0 в массиве для того, чтобы было проще проверить работоспособность программы
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
31.10.2012, 00:14
Ответы с готовыми решениями:

Ввести все элементы массива одной строкой. Вывести каждый элемент массива с новой строки
Дан одномерный массив E, состоящий из 10 вещественных чисел. Ввести все элементы массива одной...

Вывести номер строки матрицы NxN, в которой все элементы упорядочены по убыванию
Вывести номер строки матрицы NxN, в которой все элементы упорядочены по убыванию.

Вывести номер и среднее арифметическое строки, первый элемент которой равен 1
Дана матрица Х (5,5). Вывести номер и среднее арифметическое строки, первый элемент которой равен...

Массив: Вывести матрицу, у которой каждый элемент равен сумме элементов матрицы на заданных позициях...
Всем еще раз добрый день. Есть задача: Напишите программу, на вход которой подаётся...

4
349 / 299 / 164
Регистрация: 15.03.2012
Сообщений: 649
Записей в блоге: 1
31.10.2012, 00:49 2
Пользуйся whitespace, чтобы видно было что куда.
Попробуй так.
C
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
#include <stdio.h>
#include <locale.h>
#define N 9
#define M 10
 
int main()
{
    setlocale(LC_ALL, "Russian");
    srand(time(NULL));
    int i,j,arr[N][M], x, count=0;
    printf("Введите X\n");
    scanf("%d", &x);
    for(i=0;i<N;i++)
        for(j=0;j<M;j++)
            arr[i][j]=rand()%2;
    for(i=0;i<N;i++){
        for(j=0;j<M;j++)
        printf("%d\t",arr[i][j]);
        printf("\n");}
    for(i = 0;i < N;i++) {
        for(j = 0;j < M;j++)
            if(arr[i][j] == x)
                count++;
        if(count > 7)
            printf("Строка %d\n", i);
        else
            count = 0;
    }
    return 0;
}
0
Don't worry, be happy
16955 / 9828 / 1895
Регистрация: 27.09.2012
Сообщений: 24,374
Записей в блоге: 2
31.10.2012, 00:59 3
Изменения прокомментированы. Попробуйте. Для проверки возьмите значения M поменьше, иначе будете много раз пробовать запускать
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
#include <stdio.h>
#include <locale.h>
#include <random>
#include <time.h>
#define N 9
#define M 10
 
int main()
{
    setlocale(LC_ALL, "Russian");
    srand(time(NULL));
    int i,j,arr[N][M], x, count=0;//Исправил N на M
    printf("Введите X\n");
    scanf("%d", &x);
    for(i=0;i<N;i++)
        for(j=0;j<M;j++)//Исправил N на M
            arr[i][j]=rand()%2;
    for(i=0;i<N;i++){
        for(j=0;j<M;j++)
        printf("%d\t",arr[i][j]);
        printf("\n");}
 
     //Выводим номера строк в которых все элементы ранны x
     bool bFlag;
     for(i=0;i<N;i++){//проходим по каждой строке
         bFlag=true;//Флаг равен ИСТИНЕ
         for(j=0;j<M;j++){//Проходим по каждому элементу строки
             if (arr[i][j]!=x) {bFlag=false; break;}//Если элемент не равен x, тогда усланавливаем флаг в ЛОЖЬ, выходим из текущего цикла
         }
         if (bFlag) printf("Номер строки, в которой все элементы равны x: %d\n",i);//Если флаг истина, выводим номер строки
     }
 
     system("pause");
    return 0;
}
0
9 / 9 / 4
Регистрация: 16.10.2012
Сообщений: 61
31.10.2012, 15:20  [ТС] 4
Сашан, твой вариант тоже не стал работать;
Croessmah, ваш вариант не совсем то что нужно, потому что нужно на Си, а тут вроде нету типо bool;

если есть ещё варианты...
0
Модератор
Эксперт PythonЭксперт JavaЭксперт CЭксперт С++
10895 / 6812 / 1622
Регистрация: 25.07.2009
Сообщений: 12,514
31.10.2012, 16:00 5
C
1
2
3
4
5
6
for ( i = 0; i < N; ++i ) {
    for ( j = 0; j < M && arr[i][j] == x; ++j )
        ;
    if ( j == M )
        printf("Row #%d\n", i + 1);
}
1
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
31.10.2012, 16:00

Заказываю контрольные, курсовые, дипломные и любые другие студенческие работы здесь.

Вывести матрицу того же размера, у которой каждый элемент в позиции i, j равен сумме элементов первой матрицы
Напишите программу, на вход которой подаётся прямоугольная матрица в виде последовательности строк,...

Ввести элементы двумерного массива с клавы С++.Нужно вывести его на экран в виде таблицы, в конце каждой строки надо вывести самый большой элемент
Вот мой код : #include &lt;iostream&gt; #include &lt;Windows.h&gt; using namespace std; using std::cout;...

Вывести на экран в виде матрицы все элементы заданного двумерного массива
Составить программу которая выводит на экран в виде матрицы элементы двумерного массива, состоящего...

Сформировать матрицу, каждый элемент которой равен произведению номера строки на номер столбца
помогите пожалуйста срочно надо . Сформировать матрицу, каждый элемент которой равен произведению...

Создать матрицу B, каждый элемент которой равен произведению соответствующего элемента А на номер его строки
Добрый день уважаемые форумчане! Помогите пожалуйста с решением задачи в Visual Studio 2008, я не...

Вычислить и напечатать элементы массива B, каждый из которых равен скалярному произведению строки матрицы G на массив X.
Вычислить и напечатать элементы массива B, каждый из которых равен скалярному произведению строки ...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
5
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2021, vBulletin Solutions, Inc.