Форум программистов
 
О проблемах, например, с регистрацией пишите сюда - alarforum@yandex.ru, проверяйте папку спам! Обязательно пройдите активизацию e-mail, а тут можно восстановить пароль.

Вернуться   Форум программистов > IT форум > Помощь студентам
Регистрация

Восстановить пароль
Повторная активизация e-mail

Здесь нужно купить рекламу за 20 тыс руб в месяц! ) пишите сюда - alarforum@yandex.ru
Без учёта ботов - 20000 человек в день, 350000 в месяц.

Ответ
 
Опции темы
Старый 21.12.2014, 17:44   #1
mital25
Пользователь
 
Регистрация: 06.03.2014
Сообщений: 28
По умолчанию Дана целочисленная прямоугольная матрица.программа на Си

вот задание :Дана целочисленная прямоугольная матрица.
1) Найти номера строк, содержащих отрицательные элементы;
2) Найти сумму модулей элементов в тех строках, которые содержат отрицательные
элементы
а вот мой код не пойму что делать и почему не правильно работает задание 1 в кейсе 3
Код:
#include <stdio.h>
#include <stdlib.h>
#include <stdbool.h>
#include <math.h>
#include <windows.h>
#include <malloc.h>

int main()
{
    SetConsoleCP(1251);
    SetConsoleOutputCP(1251);

   int **a;
    int *b;
    int *c;
    int n;
    int i;
    int m;
    int j;
    int tmp;
    int count=0;

    int z;



    bool f = true;
    int item;
    printf("Введите число элементов массива(матрица должна быть прямоугольная)\n");
    scanf("%d%d", &n,&m);
    a = (int**)calloc(n, sizeof(int*));   // 1
    a[0] = (int*)calloc(n*m, sizeof(int));  // 2
    b = (int*)calloc(m, sizeof(int));
    c = (int*)calloc(m, sizeof(int));
    while(f){
        printf("\nВыберите режим работы\n");
        printf("0 - Выход из программы\n");
        printf("1 - Ввод элементов массива с клавиатуры\n");
        printf("2 - Вывести матрицу на экран\n");
        printf("3 - Задание 1\n");
        printf("4 - Задание 2\n");


        scanf("%d", &item);

        switch(item){
//      Выход из программы
        case 0:
            f = false;
        break;

//      Считывание элементов массива с клавиатуры
        case 1:


    for ( i = 1; i < n; ++i)        // 3
        a[i] = a[0] + i*m;

            if(!a){
                printf("Недостаточно памяти!\n");
                getchar();
                return 1;
            }
            for(i=0; i < n; i++)
                for(j=0; j < m; j++)
                {
                    printf("a[%d][%d] = ", i, j);
                    scanf("%d", &a[i][j]);
                }

                for(i=0; i < m; i++)
                  for(j=0; j < n; j++)
                  {
                    if(a[j][i] < 0)
                    {
                        tmp = abs(a[j][i]);
                        if(tmp % 2 != 0)
                            b[i] += tmp;
                    }
                  }

                break;

        case 2:
            for(i=0; i < n; i++)
            {

                for(j=0; j < m; j++)
                    printf( "%-7d ", a[i][j]);
                printf("\n");
            }
           break;
        case 3:
            /*printf("Вывести номера строк содержащих отриц элементы");
            printf("\n");*/
            for(i=0; i<n; i++)
            {
                if(count==m)
                printf("%d",i-1);

                for(j=0; j<m; j++)
                if(a[i][j] < 0)
                count=i;
            }
            printf ("\n%d",count);

            break;
        case 4:
             printf("Сумма модулей элементов строк содержащих хотя-бы один отриц элемент \n");


            break;

             default:
            printf("Неверный пункт меню!!!\n");
        }
    }

    printf("Работа программы завершена\n");
    free(a);
    getchar();
    return 0;
}
mital25 вне форума Ответить с цитированием
Ответ

Здесь нужно купить рекламу за 20 тыс руб в месяц! ) пишите сюда - alarforum@yandex.ru
Без учёта ботов - 20000 человек в день, 350000 в месяц.

Опции темы


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Дана целочисленная прямоугольная матрица.Упорядочить строки по увеличению количества одинаковых элементов (Паскаль) Марина-1 Помощь студентам 2 08.12.2013 15:42
Дана целочисленная прямоугольная матрица. Nastasia_NST Помощь студентам 1 10.05.2012 20:23
Дана целочисленная прямоугольная матрица. Lollipo Общие вопросы C/C++ 1 12.10.2010 09:52
дана целочисленная прямоугольная матрица Jet-Tea Общие вопросы C/C++ 9 02.06.2010 15:41
Дана целочисленная прямоугольная матрица... gregorio Помощь студентам 1 22.04.2009 19:27


Проекты отопления, пеллетные котлы, бойлеры, радиаторы
интернет магазин respective.ru
Пеллетный котёл Emtas
котлы EMTAS
Здесь нужно купить рекламу за 7 тыс руб в месяц! )
пишите сюда - alarforum@yandex.ru
ИКС 840