Форум программистов, компьютерный форум CyberForum.ru

Определить сумму элементов в тех столбцах матрицы, которые не содержат отрицательных элементов - C++

Восстановить пароль Регистрация
 
musbka
0 / 0 / 0
Регистрация: 17.01.2013
Сообщений: 5
17.01.2013, 21:38     Определить сумму элементов в тех столбцах матрицы, которые не содержат отрицательных элементов #1
Сразу хочу попросить прощения, если я "говнокодер".

Задача следующая:
Дана целочисленная квадратная матрица.
Написать программу, выполняющую следующие действия в виде функций с динамическим распределением памяти.
Определить:
1) сумму элементов в тех столбцах, которые не содержат отрицательных элементов;
2) минимум среди сумм модулей элементов диагоналей, параллельных диагонали матрицы.



Может много чего подключил лишнего, но просто не задумываясь откуда то копировал что бы работало... еще не думал чистить, пока не заработает.
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
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
#include<iostream> 
#include<clocale> 
#include<stdio.h>
#include<conio.h>
#include<stdlib.h>
#include<time.h>
#include <ctime>
#include <cstdlib>
#include <iomanip>
 
using namespace std; 
 
int**input(int,int);//функция ввода квадратной матрицы
void output(int**,int,int);//функция вывода квадратной матрицы
 
//Функция вывода матрицы
 
void output(int**z, int m,int n)
{
int i,j,s;
printf("матрица\n");
for(i=0;i<m;i++)
   { printf("\n");
    for(j=0;j<n;j++)
       {
       printf("%3d \t",z[i][j]);
       }
   }
printf("\n");
 }
 
 
 
// Функция ввода матрицы
 
int**input(int m,int n)
{
 int i,j;
 int**a;
 //динамическое выделение памяти
 a=(int**)malloc(m*sizeof(int*));
 for(i=0;i<m;i++)
    {
     a[i]=(int*)malloc(n*sizeof(int*));
     for(j=0;j<n;j++)
     {
     a[i][j]=0;
     }
    }
  //выбор способов ввода матрицы
  m2:puts("Как будем заполнять матрицу:\n1-вводя с клавиатуры,\n2-случайными числами");
  switch(getchar())
  {
   case'1':
      for(i=0;i<m;i++)
         {
           for(j=0;j<n;j++)
            {
              printf("a[%d][%d]=",i,j);
              scanf_s("%d",&a[i][j]);
            }
         }
   break;
   case'2':
      for(i=0;i<m;i++)
         {
          for(j=0;j<n;j++)
           {
             a[i][j]=rand() % 200-10;
           }
         }
   break;
   default:
       goto m2;
    break;
  }
return a;
}
 
// Главная функция
 
int main()
{
    setlocale(LC_CTYPE, "Russian_Russia.1251");
int m,n;
int**p;
    puts("Введите размер стороны квадратной матрицы\n");
    printf("Размер=");
    scanf_s("%d",&m);
    n=m;
    p=input(m,n);
    output(p,m,n);
    system("pause");
    return 0;
}
При запуске почему-то 2 раза вывод на экран: как будем заполнять матрицу.

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

P.S. заранее благодарю
Лучшие ответы (1)
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
17.01.2013, 21:38     Определить сумму элементов в тех столбцах матрицы, которые не содержат отрицательных элементов
Посмотрите здесь:

C++ Определить сумму элементов в тех строках, которые не содержат отрицательных элементов.
C (СИ) Определить сумму элементов в тех столбцах матрицы, которые не содержат отрицательных элементов
Определить сумму элементов в тех столбцах, которые не содержат отрицательных элементов C++
C++ Целочисленная матрица. Определить сумму элементов в тех столбцах, которые не содержат положительных элементов
Определить сумму элементов в тех столбцах матрицы, которые не содержат отрицательных элементов C++
Определить сумму элементов в тех столбцах, которые не содержат отрицательных элементов C++
C++ Определить сумму элементов в тех строках матрицы, которые содержат три отрицательных элемента
Определить сумму элементов матрицы в тех строках, которые не содержат отрицательных элементов C++

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

Или воспользуйтесь поиском по форуму:
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
TrueBit
 Аватар для TrueBit
95 / 95 / 12
Регистрация: 19.11.2012
Сообщений: 195
17.01.2013, 23:18     Определить сумму элементов в тех столбцах матрицы, которые не содержат отрицательных элементов #2
Сообщение было отмечено автором темы, экспертом или модератором как ответ
Строка 75 отправляет на метку m2: в строке 52. Вобще говоря метки нежелательно использовать в программах. Это всетаки c++, а не ассемблер. Но вот, переместив метку в другое место, не выводит дважды:
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
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
#include<iostream> 
 
using namespace std; 
 
int**input(int,int);//функция ввода квадратной матрицы
void output(int**,int,int);//функция вывода квадратной матрицы
 
//Функция вывода матрицы
 
void output(int**z, int m,int n)
{
int i,j,s;
printf("матрица\n");
for(i=0;i<m;i++)
   { printf("\n");
    for(j=0;j<n;j++)
       {
       printf("%3d \t",z[i][j]);
       }
   }
printf("\n");
 }
 
 
 
// Функция ввода матрицы
 
int**input(int m,int n)
{
 int i,j;
 int**a;
 //динамическое выделение памяти
 a=(int**)malloc(m*sizeof(int*));
 for(i=0;i<m;i++)
    {
     a[i]=(int*)malloc(n*sizeof(int*));
     for(j=0;j<n;j++)
     {
     a[i][j]=0;
     }
    }
  //выбор способов ввода матрицы
 puts("Как будем заполнять матрицу:\n1-вводя с клавиатуры,\n2-случайными числами");
  m2:
  switch(getchar())
  {
   case'1':
      for(i=0;i<m;i++)
         {
           for(j=0;j<n;j++)
            {
              printf("a[%d][%d]=",i,j);
              scanf_s("%d",&a[i][j]);
            }
         }
   break;
   case'2':
      for(i=0;i<m;i++)
         {
          for(j=0;j<n;j++)
           {
             a[i][j]=rand() % 200-10;
           }
         }
   break;
   default:
       goto m2;
    break;
  }
return a;
}
 
// Главная функция
 
int main()
{
    setlocale(LC_CTYPE, "Russian_Russia.1251");
int m,n;
int**p;
    puts("Введите размер стороны квадратной матрицы\n");
    printf("Размер=");
    scanf_s("%d",&m);
    n=m;
    p=input(m,n);
    output(p,m,n);
    system("pause");
    return 0;
}
библиотеки тоже почистил...
Yandex
Объявления
17.01.2013, 23:18     Определить сумму элементов в тех столбцах матрицы, которые не содержат отрицательных элементов
Ответ Создать тему
Опции темы

Текущее время: 15:35. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru