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

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

Восстановить пароль Регистрация
 
Рейтинг: Рейтинг темы: голосов - 13, средняя оценка - 4.92
Rosa
0 / 0 / 0
Регистрация: 29.05.2012
Сообщений: 8
30.05.2012, 16:30     Матрицы: вывести номера строк, содержащих больше положительных элементов, чем отрицательных #1
Здравствуйте всем!!! Пожалуйста помогите мне решить задачи по с++
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();
    }}
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
30.05.2012, 16:30     Матрицы: вывести номера строк, содержащих больше положительных элементов, чем отрицательных
Посмотрите здесь:

Найти номер последнего из ее столбцов, содержащих равное количество положительных и отрицательных элементов C++
Определить, есть ли в матрице строка, содержащая больше положительных элементов, чем отрицательных C++
Найти в матрице столбцы, в которых положительных элементов больше, чем отрицательных C++
Для заданного двумерного числового массива подсчитать количество таких строк, в которых положительных элементов больше, чем отрицатель-ных. C++
Определить, что положительных чисел больше, чем отрицательных C++
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
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, если смущают три(я про второе задание)
Rosa
0 / 0 / 0
Регистрация: 29.05.2012
Сообщений: 8
30.05.2012, 19:18  [ТС]     Матрицы: вывести номера строк, содержащих больше положительных элементов, чем отрицательных #3
Мне надо их решить без <iostream>...
Но все равно ОГРОМНОЕ СПАСИБО вам за то что помогли!!!
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;
}
Rosa
0 / 0 / 0
Регистрация: 29.05.2012
Сообщений: 8
31.05.2012, 07:00  [ТС]     Матрицы: вывести номера строк, содержащих больше положительных элементов, чем отрицательных #5
Ваш алгоритм программы работает на отлично! Благодарю!!!
wejustfun
1 / 1 / 0
Регистрация: 20.12.2010
Сообщений: 15
31.05.2012, 10:19     Матрицы: вывести номера строк, содержащих больше положительных элементов, чем отрицательных #6
Обращайтесь)
Yandex
Объявления
31.05.2012, 10:19     Матрицы: вывести номера строк, содержащих больше положительных элементов, чем отрицательных
Ответ Создать тему
Опции темы

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