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

Языки программирования - C++

Восстановить пароль Регистрация
 
Defik
0 / 0 / 0
Регистрация: 10.07.2011
Сообщений: 4
10.07.2011, 23:12     Языки программирования #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
#include <iostream>
#include <stdlib.h>
 
using namespace std;
 
int main()
{
        size_t size;
        cout << "" << endl;
        cin >> size;
        double* array = new double[size];
        cout << "" << endl;
        double max = -1;
        for (size_t i = 0; i < size; ++i)
        {
                cin >> array[i];
                if (array[i] > max && array[i] > 0)
            max = array[i];
    }
    if (max > 0)
        cout << "" << max << endl;
 
        delete[]array;
        return 0;
}
Но программу не приняли, сказав, что существует много языков программирования, и надо выбрать один.
Получается я смешал язык Си и Си++ ?
Если да, то как это исправить?
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
Jupiter
Каратель
Эксперт C++
6543 / 3963 / 226
Регистрация: 26.03.2010
Сообщений: 9,273
Записей в блоге: 1
Завершенные тесты: 2
10.07.2011, 23:15     Языки программирования #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
#include <iostream>
 
using namespace std;
 
int main()
{
        size_t size;
        cout << "" << endl;
        cin >> size;
        double* array = new double[size];
        cout << "" << endl;
        double max = -1.0;
        for (size_t i = 0; i < size; ++i)
        {
                cin >> array[i];
                if (array[i] > max && array[i] > 0.0)
            max = array[i];
    }
    if (max > 0)
        cout << "" << max << endl;
 
        delete[]array;
        return 0;
}
easybudda
Модератор
Эксперт С++
 Аватар для easybudda
9373 / 5423 / 914
Регистрация: 25.07.2009
Сообщений: 10,423
10.07.2011, 23:16     Языки программирования #3
Цитата Сообщение от Defik Посмотреть сообщение
#include <stdlib.h>
Эта строка смутила? Так уберите её, ничего не изменится. В остальном примитивный, но всё-таки С++. Вот только логика странная
Цитата Сообщение от Defik Посмотреть сообщение
if (max > 0)
а если меньше или равно - просто ничего не делать?

Цитата Сообщение от Defik Посмотреть сообщение
cout << ""
Ещё не понял смысла этой конструкции...
IIIa66uMEM6eP
заставил Бендера
 Аватар для IIIa66uMEM6eP
432 / 288 / 10
Регистрация: 05.12.2010
Сообщений: 1,642
Записей в блоге: 6
10.07.2011, 23:19     Языки программирования #4
Maxwe11, мило)

Цитата Сообщение от Defik Посмотреть сообщение
Получается я смешал язык Си и Си++ ?
просто убрал лишнюю библиотеку.. ну и преподам большой привет. зачем студента гонять - если такую мелочь можно и на месте решить.

Добавлено через 1 минуту
Цитата Сообщение от Maxwe11 Посмотреть сообщение
cout << "" << endl;
перевод каретки) на будущее, вполне достаточно cout << endl;
возможно пользователь взял конструкцию и слепо ее копирует.
schdub
 Аватар для schdub
2902 / 1246 / 222
Регистрация: 19.01.2009
Сообщений: 3,215
Завершенные тесты: 1
10.07.2011, 23:19     Языки программирования #5
Цитата Сообщение от Defik Посмотреть сообщение
double max = -1;
Кстати, в задании сказано, что числа в массиве будут положительными? А если нет? Например, такие: -2, -3, -4, -5, -666. Верный ли ответ выведет программа?
CEBEP
105 / 105 / 9
Регистрация: 21.03.2010
Сообщений: 437
10.07.2011, 23:22     Языки программирования #6
вас тролят, не ведитесь. этот вопрос до бесконечности философский, тем не менее, от него можно немного абстрагироваться отказавшись полностью от с++, написав код на чистом си, вот так это выглядит для вашей задачи:
C
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
#include <stdio.h>
#include <stdlib.h>
#include <conio.h>
 
int main()
{
    size_t size;
    scanf("%d", &size);
    double* array = (double*)malloc(size * sizeof(double));
    double max = -1;
    for (size_t i = 0; i < size; ++i)
    {
        scanf("%lf", array + i);
        if (array[i] > max && array[i] > 0)
            max = array[i];
    }
    if (max > 0)
        printf("%lf\n", max);
 
    free(array);
    return 0;
}
Defik
0 / 0 / 0
Регистрация: 10.07.2011
Сообщений: 4
10.07.2011, 23:37  [ТС]     Языки программирования #7
Цитата Сообщение от easybudda Посмотреть сообщение
Эта строка смутила? Так уберите её, ничего не изменится. В остальном примитивный, но всё-таки С++. Вот только логика странная

а если меньше или равно - просто ничего не делать?


Ещё не понял смысла этой конструкции...
Просто там было написанно Введите массив и т.д. и т.п. , но по условию программу должна выводить только результат , поэтому просто стер это дело.

А сложно будет если это на Си переделать?
А то Си++ изучал кустарным способом, и вот что получилось....

Добавлено через 14 минут
Цитата Сообщение от CEBEP Посмотреть сообщение
вас тролят, не ведитесь. этот вопрос до бесконечности философский, тем не менее, от него можно немного абстрагироваться отказавшись полностью от с++, написав код на чистом си, вот так это выглядит для вашей задачи:
C
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
#include <stdio.h>
#include <stdlib.h>
#include <conio.h>
 
int main()
{
    size_t size;
    scanf("%d", &size);
    double* array = (double*)malloc(size * sizeof(double));
    double max = -1;
    for (size_t i = 0; i < size; ++i)
    {
        scanf("%lf", array + i);
        if (array[i] > max && array[i] > 0)
            max = array[i];
    }
    if (max > 0)
        printf("%lf\n", max);
 
    free(array);
    return 0;
}
И еще, подскажите будте добры, как сделать так, что бы программа работала с отриц значениями?
CEBEP
105 / 105 / 9
Регистрация: 21.03.2010
Сообщений: 437
10.07.2011, 23:43     Языки программирования #8
C
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
#include <stdio.h>
#include <stdlib.h>
#include <conio.h>
 
int main()
{
    size_t size;
    scanf("%d", &size);
    double* array = (double*)malloc(size * sizeof(double));
    scanf("%lf", array);
    double max = *array;
    for (size_t i = 1; i < size; ++i)
    {
        scanf("%lf", array + i);
        if (array[i] > max && array[i] > 0)
                    max = array[i];
    }
    printf("%lf\n", max);
 
    free(array);
    return 0;
}
Defik
0 / 0 / 0
Регистрация: 10.07.2011
Сообщений: 4
10.07.2011, 23:53  [ТС]     Языки программирования #9
Цитата Сообщение от CEBEP Посмотреть сообщение
C
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
#include <stdio.h>
#include <stdlib.h>
#include <conio.h>
 
int main()
{
    size_t size;
    scanf("%d", &size);
    double* array = (double*)malloc(size * sizeof(double));
    scanf("%lf", array);
    double max = *array;
    for (size_t i = 1; i < size; ++i)
    {
        scanf("%lf", array + i);
        if (array[i] > max && array[i] > 0)
                    max = array[i];
    }
    printf("%lf\n", max);
 
    free(array);
    return 0;
}
При работа с отриц значениями -10 -5 -2
Программа выдает первое значение....
CEBEP
105 / 105 / 9
Регистрация: 21.03.2010
Сообщений: 437
10.07.2011, 23:56     Языки программирования #10
C
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
#include <stdio.h>
#include <stdlib.h>
#include <conio.h>
 
int main()
{
    size_t size;
    scanf("%d", &size);
    double* array = (double*)malloc(size * sizeof(double));
    scanf("%lf", array);
    double max = *array;
    for (size_t i = 1; i < size; ++i)
    {
        scanf("%lf", array + i);
        if (array[i] > max /*&& array[i] > 0*/)//можно было и догадаться! Прочитайте хотя бы код...
                    max = array[i];
    }
    printf("%lf\n", max);
 
    free(array);
    return 0;
}
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
10.07.2011, 23:59     Языки программирования
Еще ссылки по теме:

C++ Extern: Есть ли на данный момент набор инструментов, которые позволили бы использовать другие языки
C++ Наследование классов "Языки программирования"
Какие объектно ориентированные языки были до С++? C++

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

Или воспользуйтесь поиском по форуму:
Defik
0 / 0 / 0
Регистрация: 10.07.2011
Сообщений: 4
10.07.2011, 23:59  [ТС]     Языки программирования #11
Я мало еще в этом понимаю, сложно разобраться, спасибо за помощь.
Yandex
Объявления
10.07.2011, 23:59     Языки программирования
Ответ Создать тему
Опции темы

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