Dev-C

Напишите программу,пожалуйста, которая в последовательности натуральных чисел определяет минимальное число, кратное 3. Программа получает на вход количество чисел в последовательности, а затем сами числа. В последовательности всегда имеется число, кратное 3. Количество чисел не превышает 1000. Введённые числа не превышают 30 000. Программа должна вывести одно число — минимальное число, кратное 3.

Вроде вот так:

#include <iostream>
using namespace std;

int main()
{
    unsigned short int i,n,min,mas[1000];
    cin>>n;
    for (i=0;i<n;i++)
    cin>>mas[i];
    i=0;
    while (mas[i]%3>0)
    i++;
    min=mas[i];
    for (i=0;i<n-1;i++)
    if ((mas[i]>mas[i+1]) & ((mas[i+1]%3)==0))
    min=mas[i+1];
    cout<<min;
}

Аноним, во-первых, совершенно жуткий алгоритм. Можно обойтись без массива и использовать только один цикл.

Во-вторых, в коде имеется ошибка, которая, в данном случае, на результат не влияет. Но она есть.

Программа рабочая. Но выше, чем на троечку — пока не тянет.

В-третьих, что бы код в посте выглядел правильно, надо не тупо жать на кнопку «Код», а почитать, что написано чуть выше кнопки.

А кто-нибудь знает код на Dev-C? Я просто забыл указать, что мне нужен код на Dev-C.

У-у-у... как всё запущено ((((
Думаю, что код на Dev-C не знает никто. ;)

А почему запущено? На Dev-C никто не программирует?

А почему запущено? На Dev-C никто не программирует?

Алексей, DevC++ — это компилятор, а код, в этом компиляторе, ты пишешь на языке С++.

beginner, я учусь в 8 классе и мы пишем через #include<stdio.h> for(i=1;i=100;i++)/do while/ while(a!=0); и даже в конце getch(); пишем! Вот.

beginner, я учусь в 8 классе и мы пишем через #include<stdio.h>
for(i=1;i=100;i++)/do while/ while(a!=0); и даже в конце getch();
пишем! Вот.

Алексей, в каком бы вы классе не учились для того что бы написать программу нужно выполнить, как минимум, два условия:

  1. Написать программу на каком-либо языке программирования (в вашем
    случае, судя по заголовочному файлу #include <stdio.h>, вы
    изучаете язык С).
  2. Воспользоваться компилятором, разработанный под конкретный язык программирования (т.к. вы используете в заглавии топика DevC, догадываюсь, что для изучения языка программирования С, в 8 классе, используют компилятор DevC++).

Задачу вашу, Алексей, предлагаю решить следующим способом:

#include <iostream>

using namespace std;

int main()
{
    int amountOfNum;          // количество цифр не более 1000
    int currentValue;         // текущее число не более 30000
    const int min = 30000;    // минимальное значение
    int counter = 0;          // счетчик

    cin >> amountOfNum;

    while (counter < amountOfNum) {

        cin >> currentValue;

        if (!(currentValue % 3) && currentValue < min) {
            min = currentValue;
        }

        counter++;
    }

    cout << min << '\n';

    return 0;
}

beginner, почти угадал )) Только из const int min = 30000; надо const убрать. А то не скомпилируется.

А если ещё цикл while заменить на for — будет ещё лучше. for семантически здесь более уместен. Хотя и не принципиально.

А вот если ещё и от С++ к чистому С перейти...

DevC++ — это компилятор

Да ладно? У-у-у... как всё запущено )))

Воспользоваться компилятором, разработанный под конкретный язык
программирования (т.к. вы используете в заглавии топика DevC,
догадываюсь, что для изучения языка программирования С, в 8 классе,
используют компилятор DevC++).

Прошу прощения за ошибку. Исправляюсь :)
Воспользоваться IDE (Integrated Development Environment), с компилятором, разработанным под конкретный язык программирования (догадываюсь, что для изучения языка программирования C, в 8 классе, используют IDE DevC++, и подозреваю, что компилятор TDM-GCC 4.8.1).

А вот если ещё и от С++ к чистому С перейти...

Cranium, если к чистому С, то наверное так

#include <stdio.h>
#include <conio.h>

int main()
{
    int amountOfNum;          // количество цифр не более 1000
    int currentValue;         // текущее число не более 30000
    int min = 30000;          // минимальное значение

    scanf("%d", &amountOfNum);

    for (int counter = 0; counter < amountOfNum; counter++) {

        scanf("%d", &currentValue);

        if (!(currentValue % 3) && currentValue < min) {
            min = currentValue;
        }

    }

    printf("%d", min);

    getch();    
    return 0;
}

Внимание! Это довольно старый топик, посты в него не попадут в новые, и их никто не увидит. Пишите пост, если хотите просто дополнить топик, а чтобы задать новый вопрос — начните новый.

Ответить

Вы можете использовать разметку markdown для оформления комментариев и постов. Используйте функцию предпросмотра для проверки корректности разметки.

Пожалуйста, оформляйте исходный код в соответствии с правилами разметки. Для того, чтобы вставить код в комментарий, скопируйте его в текстовое поле ниже, после чего выделите то, что скопировали и нажмите кнопку «код» в панели инструментов. Иначе ваш код может принять нечитаемый вид.

Либо производите оформление кода вручную, следующим образом:

``` #include <iostream> using namespace std; int main() { // ... } ```

Предпросмотр сообщения

Ваше сообщение пусто.