Форум русскоязычного сообщества Ubuntu


Хотите сделать посильный вклад в развитие Ubuntu и русскоязычного сообщества?
Помогите нам с документацией!

Автор Тема: Посмотрите програмульку  (Прочитано 934 раз)

0 Пользователей и 1 Гость просматривают эту тему.

Оффлайн tro9an

  • Автор темы
  • Любитель
  • *
  • Сообщений: 55
    • Просмотр профиля
Посмотрите програмульку
« : 17 Ноября 2010, 00:29:36 »
условие:
пользователь должен вввести 4 числа, их надо поместить в массив, и вывести наибольшее из них:

#include <iostream>
using namespace std;

const int SIZE=4;

int main()
{
int a[SIZE];
int n,k;
void maxint(int b[]);
cout << "Введите 4 числа: ";
for(n=0; n<SIZE; n++)
{
cin >> a[n];
}

maxint(a);

return 0;
}



void maxint(int b[])
{
int n,j;
for(n=0; n<SIZE; n++)
{
if (b[n]>b[n+1])
j=b[n];
/*else if (b[SIZE]>b[n])
j=b[SIZE];*/
}
cout << j << endl;
}
всё кул, но единственное оно не читате последние число, например: 1 2 3 4, выведет не 4 а 0, во всех остальный (4 1 2 3, 1 4 2 3, 1 2 4 3 ) норм
код в заключенный в коментарии, это мои попытки сделать последнее число читабельным, но не получилось
дайте пожалуста подсказку чё я не так делаю

Оффлайн Чистый

  • Почётный модератор
  • Старожил
  • *
  • Сообщений: 3473
  • nix - вот оно счастье...
    • Просмотр профиля
Re: Посмотрите програмульку
« Ответ #1 : 17 Ноября 2010, 00:33:40 »
for(n=0; n<SIZE; n++)

надо

for(n=0; n<=SIZE; n++)

если я не забыл с++
Тестовый репозиторий kdeNeur ppa:devcode/kdeneur
各々が死ぬことをどのように決定する

Оффлайн tro9an

  • Автор темы
  • Любитель
  • *
  • Сообщений: 55
    • Просмотр профиля
Re: Посмотрите програмульку
« Ответ #2 : 17 Ноября 2010, 00:43:10 »
for(n=0; n<SIZE; n++)

надо

for(n=0; n<=SIZE; n++)

если я не забыл с++
ещё хуже стало))

Оффлайн MaSsoL

  • Активист
  • *
  • Сообщений: 519
    • Просмотр профиля
Re: Посмотрите програмульку
« Ответ #3 : 17 Ноября 2010, 00:44:20 »
void maxint(int b[])
{
int n,j;
for(n=0; n<SIZE-1; n++)
In Console We Trust!

Оффлайн tro9an

  • Автор темы
  • Любитель
  • *
  • Сообщений: 55
    • Просмотр профиля
Re: Посмотрите програмульку
« Ответ #4 : 17 Ноября 2010, 00:50:34 »
void maxint(int b[])
{
int n,j;
for(n=0; n<SIZE-1; n++)
Цитировать
не читате последние число, например: 1 2 3 4, выведет не 4 а 0
вы хоть сами проверяете, прежде чем постить?

Оффлайн MaSsoL

  • Активист
  • *
  • Сообщений: 519
    • Просмотр профиля
Re: Посмотрите програмульку
« Ответ #5 : 17 Ноября 2010, 00:54:09 »
а Вы?
In Console We Trust!

Оффлайн tro9an

  • Автор темы
  • Любитель
  • *
  • Сообщений: 55
    • Просмотр профиля
Re: Посмотрите програмульку
« Ответ #6 : 17 Ноября 2010, 00:55:21 »
проверю, причём аж 3 раза проверил, не работает..

Оффлайн Чистый

  • Почётный модератор
  • Старожил
  • *
  • Сообщений: 3473
  • nix - вот оно счастье...
    • Просмотр профиля
Re: Посмотрите програмульку
« Ответ #7 : 17 Ноября 2010, 00:56:54 »
Все работает:

#include <iostream>

using namespace std;
const int SIZE=3;

int main()
{
  int a[SIZE];
  int n,k;
  int maxint(int b[]);

cout << "Введите 4 числа: ";

for(n=0; n<=SIZE; n++)
{
cin >> a[n];
}

cout << "Максимальное число в массиве: " << maxint(a) << endl;

return 0;
}

int maxint(int b[])
{
  int n,j;
for(n=0; n<=SIZE; n++)
 {
if (j< b[n])
{
  j=b[n];
}
 }
return j;
}


« Последнее редактирование: 17 Ноября 2010, 01:00:00 от Чистый »
Тестовый репозиторий kdeNeur ppa:devcode/kdeneur
各々が死ぬことをどのように決定する

Оффлайн Kwah

  • Старожил
  • *
  • Сообщений: 1442
  • Ubuntu 17.10
    • Просмотр профиля
Re: Посмотрите програмульку
« Ответ #8 : 17 Ноября 2010, 00:58:20 »
1 2 3 4 у тебя ни разу не выполняется условие b[n]>b[n+1], выводиться j проинициализированное нулём.

Логика должна быть примерно такая:

максимум = первому элементу

начиная со второго элемента, пока не дошли до конца массива
если текущий элемент больше максимума, то максимум = текущий элемент
всё.

 

Страница сгенерирована за 0.016 секунд. Запросов: 22.