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

Прошу найти ошибку... - C++

Восстановить пароль Регистрация
 
b0n4b
2 / 2 / 0
Регистрация: 16.11.2011
Сообщений: 100
21.11.2011, 22:32     Прошу найти ошибку... #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
#include <conio.h> 
#include <stdio.h> 
 
int main(void) 
{ 
    const int n=5; 
    int a[n], i, j, b;
    printf ("Enter 5\n");
    for (j=0; j<n; j++)
    {
        scanf ("%d", &a[j]);
    }
    for (j=0; j<n-1; j++)
    {
        for (i=0; i<n-j; i++)
            if (a[i]>a[i+1])
            {
                b=a[i+1];
                a[i+1]=a[i];
                a[i]=b;
            }
    } 
    printf("%d", a[i]);
    getch();
    return 1;
}
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
St1ck_man
9 / 9 / 1
Регистрация: 21.11.2011
Сообщений: 36
21.11.2011, 22:41     Прошу найти ошибку... #2
Что должна делать программа? Будьте добры поясните .)
b0n4b
2 / 2 / 0
Регистрация: 16.11.2011
Сообщений: 100
21.11.2011, 22:42  [ТС]     Прошу найти ошибку... #3
Метод сортировки. пузырьком
St1ck_man
9 / 9 / 1
Регистрация: 21.11.2011
Сообщений: 36
21.11.2011, 22:45     Прошу найти ошибку... #4
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
#include <conio.h> 
#include <stdio.h> 
 
int main(void) 
{ 
        const int n=5; 
        int a[n], i, j, b;
        printf ("Enter 5\n");
        for (j=0; j<n; j++)
        {
                scanf ("%d", &a[j]);
        }
        for (j=0; j<n-1; j++)
        {
                for (i=0; i<n-j; i++)
                        if (a[i]>a[i+1])
                        {
                                b=a[i+1];
                                a[i+1]=a[i];
                                a[i]=b;
                        }
        } 
        
        for(i=0;i<n;i++)   // добавил это :)
        printf("%d  ", a[i]);
        getch();
        return 1;
}
вроде работает )
b0n4b
2 / 2 / 0
Регистрация: 16.11.2011
Сообщений: 100
21.11.2011, 22:50  [ТС]     Прошу найти ошибку... #5
St1ck_man, она работает, но не совсем корректно)
Liebe
...
 Аватар для Liebe
891 / 74 / 5
Регистрация: 21.02.2010
Сообщений: 2,196
Записей в блоге: 1
22.11.2011, 02:13     Прошу найти ошибку... #6
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
#include <conio.h> 
#include <stdio.h> 
 
int main(void) 
{ 
        const int n=5; 
        int a[n], i, j, b;
    bool flag=true; //новая переменная
 
        printf ("Enter 5\n");
        for (j=0; j<n; j++)
        {
                scanf ("%d", &a[j]);
        }
        //for (j=0; j<n-1; j++)
    while (flag) //поменяли тип цикла
        {
    flag=false; //если далее условие не выполнится, то значит массив упорядочен и цикл завершится
                for (i=0; i<n-1; i++) //поменяли на n-1
                        if (a[i]>a[i+1])
                        {
                                b=a[i+1];
                                a[i+1]=a[i];
                                a[i]=b;
                flag=true; //меняем значение
                        }
        } 
        for (i=0; i<n; i++)
        printf("%d", a[i]);
        getch();
        return 1;
}
accept
4837 / 3236 / 165
Регистрация: 10.12.2008
Сообщений: 10,682
22.11.2011, 12:05     Прошу найти ошибку... #7
Цитата Сообщение от liebe
C++
1
    return 1;
C++
1
    return 0;
getch() можно заменить на cin.get() (может даже двойной)
Liebe
...
 Аватар для Liebe
891 / 74 / 5
Регистрация: 21.02.2010
Сообщений: 2,196
Записей в блоге: 1
22.11.2011, 16:50     Прошу найти ошибку... #8
accept, спасибо, буду знать.
а вообще я просто переделывала саму сортировку в коде, который был приведен. )))
accept
4837 / 3236 / 165
Регистрация: 10.12.2008
Сообщений: 10,682
22.11.2011, 16:52     Прошу найти ошибку... #9
ну да, в другом коде у тебя не было такого return
+B
Заблокирован
20.07.2012, 21:32     Прошу найти ошибку... #10
Цитата Сообщение от accept Посмотреть сообщение
return 0;
Цитата Сообщение от Liebe Посмотреть сообщение
accept, спасибо, буду знать.
Напиши void в возвращаемом типе функции main() и тебе вообще ни какие return(ы) не понадобятся
C++
1
2
void main() 
{
Liebe
...
 Аватар для Liebe
891 / 74 / 5
Регистрация: 21.02.2010
Сообщений: 2,196
Записей в блоге: 1
20.07.2012, 21:46     Прошу найти ошибку... #11
Цитата Сообщение от +B Посмотреть сообщение
Напиши void в возвращаемом типе функции main() и тебе вообще ни какие return(ы) не понадобятся
Спасибо, конечно. Но насколько я уже успела прочитать где-то здесь на форуме, так делать нежелательно.
+B
Заблокирован
20.07.2012, 21:53     Прошу найти ошибку... #12
Цитата Сообщение от Liebe Посмотреть сообщение
так делать нежелательно.
Возможно. Я то к Шарпу привык. Иногда и в плюсах так делал. Разницы не заметил.
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
21.07.2012, 04:46     Прошу найти ошибку...
Еще ссылки по теме:

C++ прошу знатаков найти ошибку
C++ Прошу объяснить о ссылках,указателях,стрелке -> и двоеточиях :: очень прошу я не понял синтаксис

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

Или воспользуйтесь поиском по форуму:
accept
4837 / 3236 / 165
Регистрация: 10.12.2008
Сообщений: 10,682
21.07.2012, 04:46     Прошу найти ошибку... #13
Цитата Сообщение от +B Посмотреть сообщение
Напиши void в возвращаемом типе функции main() и тебе вообще ни какие return(ы) не понадобятся
void main( неправильно по стандарту, но return действительно не обязателен (так как предполагается return 0 в C99 и C++)
но в C89 там будет случайное значение, которое в исполняющей среде чаще всего будет означать, что программа завершилась со сбоем
Yandex
Объявления
21.07.2012, 04:46     Прошу найти ошибку...
Ответ Создать тему
Опции темы

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