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

обработки массивов ляньте - C++

Восстановить пароль Регистрация
 
zizu
3 / 3 / 0
Регистрация: 23.12.2009
Сообщений: 94
09.04.2010, 15:31     обработки массивов ляньте #1
1)Составить программу, которая вычисляет произведение максимального и минимального значений элементов одномерного массива Х, состоящая из 15 действительных чисел.
2) Составить программу для подсчета количества положительных элементов квадратной таблицы В, состоящий из N × N целых чисел, расположенных выше главной диагонали. Сформировать матрицу с помощью генератора случайных чисел и организовать ее вывод на экран.
3)Для прямоугольной матрицы найти минимальный из положительных и максимальный из отрицательных элементов. Нулевые элементы не учитывать.


помогите плииззз=)
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
NNN777
299 / 157 / 19
Регистрация: 27.02.2010
Сообщений: 317
09.04.2010, 16:44     обработки массивов ляньте #2
1.
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
#include <iostream>
#include <locale.h>
const int LIMIT=15;
using namespace std;
 
int main ()
{
    setlocale(LC_ALL,"Russian");
    float a[LIMIT], b[LIMIT], max, min;
 
    for (int i=0; i<LIMIT; i++)
        cin>>a[i];
 
    max=a[0];
    for (int i=1; i<LIMIT; i++)
        if (a[i]>max)
            max=a[i];
    
    min=a[0];
    for (int i=1; i<LIMIT; i++)
        if (a[i]<min)
            min=a[i];
    
    cout<<"Произведение: "<<max*min<<endl;
        
    return 0;
}
zizu
3 / 3 / 0
Регистрация: 23.12.2009
Сообщений: 94
09.04.2010, 21:07  [ТС]     обработки массивов ляньте #3
а еше помогите плиззззз
NNN777
299 / 157 / 19
Регистрация: 27.02.2010
Сообщений: 317
10.04.2010, 11:21     обработки массивов ляньте #4
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
#include <iostream>
#include <time.h>
#include <locale.h>
#include <stdlib.h>
using namespace std;
int main()
{
     setlocale(LC_ALL,"Russian");
    int  k=0;
    const int n=6;
    int a[n][n];
 
    srand (time(NULL));
//формирование матрицы
    for(int i = 0; i < n; ++i)
        for(int j = 0; j < n; ++j)
            a[i][j] = rand() % 51 - 25;//разброс чисел можете выбрать сами
//печать матрицы        
    for(int i = 0; i < n; ++i)
    {
        for(int j = 0; j < n; ++j)
            cout << a[i][j] << "\t";
        cout <<endl;
    } 
    cout <<endl<<endl;
//обход столбцов, подсчет  положительных элементов
    for (int j=1; j<n; j++)
        for (int i=0; i<j; i++)
            if (a[i][j]>0)
                 k++;   
 
    cout <<endl<<endl;
    cout<<"Количество положительных элементов: "<<k<<endl;
 
    return 0;
}
zizu
3 / 3 / 0
Регистрация: 23.12.2009
Сообщений: 94
10.04.2010, 12:29  [ТС]     обработки массивов ляньте #5
кстати 1 чего то невлючаеться а вовторой результат неправельный выдает.....
NNN777
299 / 157 / 19
Регистрация: 27.02.2010
Сообщений: 317
10.04.2010, 12:55     обработки массивов ляньте #6
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
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
#include <iostream>
#include <time.h>
#include <locale.h>
#include <stdlib.h>
using namespace std;
int main()
{
     setlocale(LC_ALL,"Russian");
    int min=0, i=0,j=0, max=0;
    const int n=5;
    const int m=7;
    int a[n][m]={0};
 
    srand (time(NULL));
//формирование матрицы
    for(int i = 0; i < n; ++i)
        for(int j = 0; j < m; ++j)
            a[i][j] = rand() % 51 - 25;
//печать
    for(int i = 0; i < n; ++i)
    {
        for(int j = 0; j < m; ++j)
            cout << a[i][j] << "\t";
        cout <<endl;
    } 
 
    for (int i=0; i<n; i++)
        for (int j=0; j<m; j++)
            if (min==0)
            {
                if (a[i][j]>0)
                    min=a[i][j];
            } 
            else break;
    for (int i=0; i<n; i++)
        for (int j=0; j<m; j++)
            if (max==0)
            {
                if (a[i][j]<0)
                    max=a[i][j];
            } 
            else break;
 
    if (min==0)
        cout<<"Положительных элементов нет."<<endl;
    
    else
    {
        for (int i=0; i<n; i++)
            for (int j=0; j<m; j++)
                if (a[i][j]>0&&a[i][j]<min)
                     min=a[i][j];   
    
        cout <<endl;
        cout<<"min: "<<min<<endl;
    }
 
    if (max==0)
        cout<<"Отрицательных элементов нет."<<endl;
    else
    {
        for (int i=0; i<n; i++)
            for (int j=0; j<m; j++)
                if (a[i][j]<0&&a[i][j]>max)
                     max=a[i][j];
        cout <<endl;
        cout<<"max: "<<max<<endl;
    }
    return 0;
}
Добавлено через 6 минут
У меня 1-я включается, работает, не знаю, что там у вас... Вторую сейчас посмотрю

Добавлено через 4 минуты
вторая тоже вроде нормально работает... единственное, может потому, что вы не указали в условии, учитываются ли положительные элементы самой диагонали... Дайте пример
Yandex
Объявления
10.04.2010, 12:55     обработки массивов ляньте
Ответ Создать тему
Опции темы

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