Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

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

Восстановить пароль

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 19.12.2013, 18:43   #1
vadres
Новичок
Джуниор
 
Регистрация: 19.12.2013
Сообщений: 6
По умолчанию Помогите программы на С++. Желательно к каждой команде комментарий. Каждое задание отдельная программа

1)Дан массив а, состоящий из n целых чисел (n<=100). Найти номер последнего положительного числа
2)Дана матрица целых чисел, из n строк и n столбцов (n<=100). Найти количество максимальных элементов матрицы, среди элементов лежащих выше главной диагонали
vadres вне форума Ответить с цитированием
Старый 19.12.2013, 20:05   #2
troyan90
Пользователь
 
Регистрация: 23.06.2011
Сообщений: 54
По умолчанию

1:
Код:
#include <iostream>
#include <cstdlib>
#include <ctime>

using namespace std;

int main()
{
    srand(time(0));

    int a[100]; // массив из 100 элементов

    for (int i = 0; i < 100; i++) // заполнение массива случайными числами
    {
        bool b = (int) (rand() % 2);
        a[i] = b ? rand() : (- rand());
    }

    int l; // будет содержать номер последнего положительного элемента

    for (int g = 0; g < 100; g++) // поиск последнего положительного элемента 
    {
        if (a[g] >= 0)
            l = g;
    }

    cout << "Last: " << l + 1 << endl;

    return 0;
}
troyan90 вне форума Ответить с цитированием
Старый 19.12.2013, 20:49   #3
troyan90
Пользователь
 
Регистрация: 23.06.2011
Сообщений: 54
По умолчанию

2:
Код:
#include <iostream>
#include <cstdlib>
#include <ctime>

using namespace std;

int main()
{
    srand(time(0));

    int n = 5; // кол-во элементов
    int a[n][n]; // матрица из n строк/столбцов

    for (int g = 0; g < n; g++) // заполнение матрицы случайными числами
    {
        for (int i = 0; i < n; i++)
        {
            bool b = (int) (rand() % 2);
            a[g][i] = b ? rand(): (- rand());
        }
    }

    int c = 0; // кол-во положительных элементов
    int p = 0;

    for (int q = 0; q < n; q++) // проход по матрице и поиск положительных элементов лежащих выше главной диагонали
    {
        for (int z = 0; z < n; z++)
            if (z > p)
                if (a[q][z] >= 0)
                    c++;

        p++;
    }

    cout << "Summa: " << c << endl;

    return 0;
}

Последний раз редактировалось troyan90; 19.12.2013 в 20:51.
troyan90 вне форума Ответить с цитированием
Старый 19.12.2013, 20:56   #4
vadres
Новичок
Джуниор
 
Регистрация: 19.12.2013
Сообщений: 6
По умолчанию

к сожалению программа не работает. проверял на билдере, запускает окно и сразу закрывает. В чем может быть причина ?
vadres вне форума Ответить с цитированием
Старый 19.12.2013, 21:08   #5
troyan90
Пользователь
 
Регистрация: 23.06.2011
Сообщений: 54
По умолчанию

все работает.
потому что консольное - вот и закрывается. добавь в конец кода что-нибудь вроде system("pause") или cin..
не знаю как там в билдере делать. у меня code::blocks сам замораживает процесс по завершению программы.
troyan90 вне форума Ответить с цитированием
Старый 19.12.2013, 21:19   #6
vadres
Новичок
Джуниор
 
Регистрация: 19.12.2013
Сообщений: 6
По умолчанию

СУпер все заработала. а можешь исправить что бы числа не генерировалась а мы сами вводили? Желательно через команды cout и cin
vadres вне форума Ответить с цитированием
Старый 19.12.2013, 21:27   #7
troyan90
Пользователь
 
Регистрация: 23.06.2011
Сообщений: 54
По умолчанию

в первом примере:
Код:
// это
  bool b = (int) (rand() % 2);
  a[i] = b ? rand() : (- rand());

 // замени на это 
 cout << "Chislo: ";
 cin >> a[i];
во втором:
Код:
//это
  bool b = (int) (rand() % 2);
  a[g][i] = b ? rand(): (- rand());

  // замени на это 
  cout << "Chislo: ";
  cin >> a[g][i];
troyan90 вне форума Ответить с цитированием
Старый 19.12.2013, 21:33   #8
vadres
Новичок
Джуниор
 
Регистрация: 19.12.2013
Сообщений: 6
По умолчанию

Большое спасибо))
vadres вне форума Ответить с цитированием
Старый 20.12.2013, 00:24   #9
vadres
Новичок
Джуниор
 
Регистрация: 19.12.2013
Сообщений: 6
По умолчанию

А как выровнять матрицу по левой стороне? (т.е что бы матрица была ровной)
вот код.
Код:
#include <iomanip>
void main( )
{
int a[20][4];  // матрица
int n, m;  // количества строк и столбцов матрицы
int i,j;  //номера строки и столбца матрицы
int s;  //сумма положительных чисел матрицы
int c;
int k[100]; //  массива
int min;
// ввод размеров
cout<<"n: ";
cin>>n;
// ввод массива
cout<<"k:"<<endl;
      for (j=0; j<n; j++)
    cin>>k[j];
   // Ввод матрицы
cout<<"a:"<<endl;
for (i=0; i<n; i++)
   for (j=0; j<4; j++)
      cin>>a[i][j];
  // Вывод матрицы построчно
for (i=0; i<n; i++)
{       cout<<k[i]<<" " ;
   for (j=0; j<4; j++)
      cout<<a[i][j]<<" ";
   cout<<endl;
}

getch();
}


___________
Код нужно оформлять по правилам:
тегом [CODE]..[/СODE]
(кнопочка на панели форматирования с решёточкой #)
Не забывайте об этом!

Модератор.

Последний раз редактировалось Serge_Bliznykov; 20.12.2013 в 09:28.
vadres вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Форма как отдельная программа в панели задач Crystallon Общие вопросы Delphi 4 30.07.2011 05:48
Форма как отдельная программа в панели задач Crystallon Общие вопросы Delphi 2 28.05.2011 12:36
помогите переделать программы под задание Povar Паскаль, Turbo Pascal, PascalABC.NET 7 22.05.2008 15:59