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

С++ для начинающих

Войти
Регистрация
Восстановить пароль
 
Рейтинг: Рейтинг темы: голосов - 13, средняя оценка - 4.92
Rosa
0 / 0 / 0
Регистрация: 29.05.2012
Сообщений: 8
#1

Матрицы: вывести номера строк, содержащих больше положительных элементов, чем отрицательных - C++

30.05.2012, 16:30. Просмотров 1916. Ответов 5
Метки нет (Все метки)

Здравствуйте всем!!! Пожалуйста помогите мне решить задачи по с++
1) Двумерный массив. Дана вещественная матрица размерности n * m. Вывести номера строк, содержащих больше положительных элементов, чем отрицательных.
Начала так,но как дальше незнаю...
C++ (Qt)
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
#include "stdafx.h"
#include "stdio.h"
#include "conio.h"
#define n 3
#define m 3
 
int main()
{
int a[n][m]; 
int  i,j;
int k=0; int t=0;  
printf("vvedi massiv:\n");
for (i=1; i<=n; i++)
for (j=1; j<=m; j++)
{
printf("a[%d][%d]=",i,j);
scanf("%d", &a[i][j]);
}
for (i=1; i<=n; i++)
for (j=1; j<=m; j++)
{if (a[i][j]>0)   t=t+1;
if (a[i][j]<0) k=k+1;}
 printf("t= %d",t);
 printf("\nk= %d",k);
for (i=1; i<=n; i++)
if (t>k) printf("\ni= %d", i);
_getch();
}
2) Функция. Напишите программу, которая с помощью функции определяющей максимальную цифру числа выводит на экран наибольшую из цифр заданных пользователем трех чисел. Например, если а=25, b=730, c=1235, то программа должна вывести на экран число 7.

Добавлено через 22 часа 3 минуты
Пожалуйста посмотрите мои задачи
Правильно ли эта задача?
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
#include <stdafx.h>
#include <stdio.h>
#include <conio.h>
#include <math.h>
#define n 3
#define m 3
 
int main()
{
    int   i, j;
    int  max=1,min=1;
    int  k1, k2;
    int  a[n][m];
    printf("vvesti a  massiv:");  
    for (i=1; i<=n; i++)    
    for (j=1; j<=m; j++)
         { 
        printf("a[%d][%d]=",i,j);
        scanf("%d", &a[i][j]);  
        if (i==n) printf("\n"); 
          }
    for (i=1; i<=n; i++)    
     {  
         k1=0; k2=0;
        for (j=1; j<=m; j++)
         { 
              if (a[i][j]>0) {k1=k1+1;}   
              if (a[i][j]<0) {k2=k2+1;}  
          }
           for (i=1; i<=n; i++)
               {if (k1>k2) printf("i= %d",i);}      
        _getch();
    }}
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
30.05.2012, 16:30
Здравствуйте! Я подобрал для вас темы с ответами на вопрос Матрицы: вывести номера строк, содержащих больше положительных элементов, чем отрицательных (C++):

Вывести номера строк, в которых чётных элементов массива больше чем нечётных - C++
Нужно вывести количество строк, а также номера строк, в которых чётных элементов двумерного массива больше чем не чётных. Вот мой код: ...

Поиск количества столбцов матрицы, содержащих больше трех положительных элементов - C++
Помогите пожалуйста с написанием кода. Дан двумерный массив, размерность массива и элементы вводятся вручную. Я не знаю как...

Найти в матрице столбцы, в которых положительных элементов больше, чем отрицательных - C++
Дана матрица. Найти в ней столбцы, в которых положительных элементов больше, чем отрицательных. Распечатать эти столбцы. === ...

Определить, есть ли в матрице строка, содержащая больше положительных элементов, чем отрицательных - C++
Здрасте) Помогите пожалуйста 1.Дан двумерный массив размером m на n, заполненный случайными числами. Определить, есть ли в данном...

Найти номер последнего столбца матрицы, содержащих равное количество положительных и отрицательных элементов - C++
Дана целочисленная матрица размера M × N. Найти номер последнего из ее столбцов, содержащих равное количество положительных и отрицательных...

В заданной матрице удалить строку, если положительных элементов в ней, больше чем отрицательных - C++
Если в строке положительных чисел, больше чем отрицательных, то эту строку удалить. Помогите.

5
wejustfun
1 / 1 / 0
Регистрация: 20.12.2010
Сообщений: 15
30.05.2012, 19:11 #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
#include<iostream>
#include<iomanip>
#include<conio.h>
#include<time.h>
using namespace std;
 
int main()
{
    setlocale(0,"");
    float a[100][100],s=0;
    int n,m;
    srand(time(NULL));
 
    cout<<"Введите n: ";
    cin>>n;
    cout<<"Введите m: ";
    cin>>m;
 
    for(int i=0;i<n;i++)
        for(int j=0;j<n;j++)
        {
            cout<<"Введите а["<<i<<"]"<<"["<<j<<"]: ";
            cin>>a[i][j];
        }
 
    for(int i=0;i<n;i++)
    {
        for(int j=0;j<m;j++)
        {
            cout<<setw(3)<<a[i][j];
        }
        cout<<endl;
    }
 
    for(int i=0;i<n;i++)
    {
        for(int j=0;j<m;j++)
        {
            s=s+a[i][j];
        }
        
        if(s>0)
        cout<<"В строке "<<i+1<<" положительных элементов больше!"<<endl;
        s=0;
    }
 
    system("PAUSE");
    return 0;
}
Добавлено через 33 минуты
Задача номер два
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
#include<iostream>
#include<math.h>
#include<conio.h>
using namespace std;
 
void maximum(int,int,int);
 
int main()
{
    setlocale(0,"");
    int a,b,c;
    cout<<"Введите через пробел три числа: ";
    cin>>a>>b>>c;
    maximum(a,b,c);
 
    system("PAUSE");
    return 0;
}
 
void maximum(int x,int y,int z)
{
    int m,n,k;
    int max_m=0,max_n=0,max_k=0,result;
 
    while(x>0)
    {
        m=x%10;
        if(m>max_m)
            max_m=m;
        x=x/10;
    }
 
    while(y>0)
    {
        n=y%10;
        if(n>max_n)
            max_n=n;
        y=y/10;
    }
 
    while(z>0)
    {
        
        k=z%10;
        if(k>max_k)
            max_k=k;
        z=z/10;
    }
 
    if(max_m>max_n&&max_m>max_k)
        result=max_m;
    if(max_m<max_n&&max_n>max_k)
        result=max_n;
    if(max_m<max_n&&max_n<max_k)
        result=max_k;
    cout<<"Наибольшая цифра: "<<result<<endl;
}
Добавлено через 2 минуты
Написано конечно не супер, но как умею...сам учусь....пользуюсь Visual Studio 2010...на моем компиляторе все компилируется все запускается)

Добавлено через 22 минуты
Можете также найти сначала наибольшее число из трех,а потом относительно него построить один while, если смущают три(я про второе задание)
1
Rosa
0 / 0 / 0
Регистрация: 29.05.2012
Сообщений: 8
30.05.2012, 19:18  [ТС] #3
Мне надо их решить без <iostream>...
Но все равно ОГРОМНОЕ СПАСИБО вам за то что помогли!!!
0
wejustfun
1 / 1 / 0
Регистрация: 20.12.2010
Сообщений: 15
30.05.2012, 22:33 #4
Мммм....Rosa, извиняюсь за первую задачу...я думал вам нужно вывести строку, если сумма элементов ее больше нуля...я переделал,вот то, что вам нужно....думаю я не буду переделывать без библиотеки iostream вам же нужно было понять только алгоритм решения как я понимаю,тем более заголовочный файл IOSTREAM отвечает только за ввод вывод,так что алгоритм решения будет тот же...вот первая задача,переделанная под то условие, которое интересует вас.
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
#include<iostream>
#include<iomanip>
#include<conio.h>
#include<time.h>
using namespace std;
 
int main()
{
    setlocale(0,"");
    float a[100][100];
    int n,m,pol=0,otr=0;
    srand(time(NULL));
 
    cout<<"Введите n: ";
    cin>>n;
    cout<<"Введите m: ";
    cin>>m;
 
    for(int i=0;i<n;i++)
        for(int j=0;j<n;j++)
        {
            cout<<"Введите а["<<i<<"]"<<"["<<j<<"]: ";
            cin>>a[i][j];
        }
 
    for(int i=0;i<n;i++)
    {
        for(int j=0;j<m;j++)
        {
            cout<<setw(3)<<a[i][j];
        }
        cout<<endl;
    }
 
    for(int i=0;i<n;i++)
    {
        for(int j=0;j<m;j++)
        {
            if(a[i][j]>=0)
                pol++;
            else
                otr++;
        }
        
        if(pol-otr>0)
        cout<<"В строке "<<i+1<<" положительных элементов больше!"<<endl;
        pol=0;
        otr=0;
    }
 
    system("PAUSE");
    return 0;
}
0
Rosa
0 / 0 / 0
Регистрация: 29.05.2012
Сообщений: 8
31.05.2012, 07:00  [ТС] #5
Ваш алгоритм программы работает на отлично! Благодарю!!!
0
wejustfun
1 / 1 / 0
Регистрация: 20.12.2010
Сообщений: 15
31.05.2012, 10:19 #6
Обращайтесь)
0
31.05.2012, 10:19
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
31.05.2012, 10:19
Привет! Вот еще темы с ответами:

Определить, есть ли в данном массиве строка, содержащая больше положительных элементов, чем отрицательных - C++
Форумчане, привет. Нуждаюсь в помощи по массивам, ибо этот раздел мне не поддается никак. Суть задания: Дан двумерный массив размером...

Для заданного двумерного числового массива подсчитать количество таких строк, в которых положительных элементов больше, чем отрицатель-ных. - C++
Доброго времени суток. Помогите написать программу по заданию, но в более простом варианте. &quot;Для заданного двумерного числового...

Найти и вывести номера структур, содержащих числа больше заданного - C++
Имеется база данных, содержащая числители и знаменатели дробных чисел. Например, последовательность чисел 5/18, 7/13, 9/8, …...

Вывести строки матрицы, в которых модуль суммы отрицательных чисел больше модуля суммы положительных - C++
Друзья,помогите пожалуйста, если можете! Нужно создать матрицу M на N и заполнить её действительными числами, определить и вывести на...


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

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

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