Загрузка...

Помогите с задачей на си. Определить количество отрицательных элементов, расположенных в строках.

Тема в разделе C/C++ создана пользователем code 22 янв 2023. 377 просмотров

  1. code
    code Автор темы 22 янв 2023 1195 2 июл 2021
    C
    /*
    Определить количество отрицательных элементов, расположенных в строках с номерами, кратными 3.
    */

    #include <stdio.h> // библиотека для ввода-вывода
    #include <conio.h> // библиотека для работы терминалом
    #include <windows.h> // библиотека для работы с API Windows
    #include <stdlib.h> // библиотека для работы с памятью

    int main()
    {
    /*
    Вводим поддержку русских символов в консоль
    */
    SetConsoleCP(1251);
    SetConsoleOutputCP(1251);
    /*
    Вводим переменные для размерности и устанавливаем указатели под двухмерный динамический массив
    */
    int n, m;
    int **mas = 0;
    int sum;
    /*
    Вводим размерность массива с клавиатуры
    */
    printf("Введите количество строк: ");
    scanf("%d", &n);
    printf("Введите количество столбцов: ");
    scanf("%d", &m);
    /*
    Создаем массив, указаной пользователем размерности
    */
    mas = malloc( sizeof(*mas) * n );
    for(int i = 0; i < n; i++)
    mas[i] = malloc( sizeof(**mas) * m);
    /*
    Вводим элементы массива по очереди
    */
    for(int x = 0; x < n; x++)
    {
    for(int y = 0; y < m; y++)
    {
    printf("mas[%d][%d] = ", x, y); // выводим номер ячейки, которую вводит пользователь
    scanf("%d", &mas[x][y]); // вводим целое число в ячейку
    }
    }
    /*
    При необходимости выводим на экран
    */
    putchar('\n');
    for(int x = 0; x < n; x++)
    {
    for(int y = 0; y < m; y++)
    printf("%d\t", mas[x][y]);
    putchar('\n');
    }
    /*
    Ищем отрицательные элементы в каждой 3 строке массива, суммируем их колличество и выводим на экран
    */
    for(int x = 3; x < n; x + 3)
    for (int y = 0; y < m; y++)
    if(mas[x][y] < 0)
    sum++;
    printf("%d", sum);
    free(mas);

    _getch();
    return 0;
    }
    Что я делаю не так при поиске отрицательных элементов, и нахождении суммы их количества?
     
  2. cardholder
    cardholder 22 янв 2023 Заблокирован(а) 2448 13 июл 2022
    C
    int main()
    {
    int n, m;
    cin >> n >> m;
    int a[n][m];
    int count = 0;
    for (int i = 0; i < n; i++) {
    for (int j = 0; j < m; j++) {
    cin >> a[i][j];
    if (i % 3 == 0 && a[i][j] < 0)
    count++;
    }
    }
    cout << "Количество отрицательных элементов в строках, кратное 3: " << count << endl;
    return 0;
    }
     
    1. code Автор темы
      cardholder, Не вариант. Мне нужно на си. Я вроде все сделал, но концовка не работает, либо я неправильно сделал.
  3. Daemon
    Daemon 22 янв 2023 1680 8 янв 2021
  4. LVV
    code, [IMG] и чего ожидаешь? чтоцикл будет работать, исправь на инкременцию
     
    1. Посмотреть предыдущие комментарии (15)
    2. code Автор темы
      LVV, Спасибо. Теперь понятно откуда мусор в sum появился..
    3. code Автор темы
      LVV, достаточно было в sum ноль записать и заработало нормально.
    4. LVV
      code, гуд, закрой тему, если разобрался
Загрузка...
Top