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

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

Вернуться   Форум программистов > C/C++ программирование > Общие вопросы C/C++
Регистрация

Восстановить пароль
Повторная активизация e-mail

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

Ответ
 
Опции темы Поиск в этой теме
Старый 02.04.2013, 22:29   #1
Megapol
Пользователь
 
Регистрация: 28.12.2011
Сообщений: 29
По умолчанию

Дано натуральное число n. Получить в порядке возрастания n первых натуральных чисел , которые не делятся на ни на какие простые числа ,кроме 2,3 и 5.
Код:
#include <iostream.h>
#include <conio.h>
#include <math.h>
void main(int n,int s[])
{
    int i,b;
    int j=0;
    for (i=2; j!=n;i++)
    {
        b=i;
        while (b!=1)
        {
            if(b%2==0) b/=2; else
            if(b%3==0) b/=3; else
            if(b%5==0) b/=5; else break;
        }
        if (b==1) s[j++]=i;
    }
}
выдает ошибку main must return "int"

Dev C++ помагите

Последний раз редактировалось Stilet; 03.04.2013 в 15:25.
Megapol вне форума Ответить с цитированием
Старый 02.04.2013, 22:31   #2
Rififi
Старожил
 
Регистрация: 19.08.2009
Сообщений: 2,119
По умолчанию

выдает ошибку main must return "int"

это означает функция main должна возвращать тип "int"
Rififi вне форума Ответить с цитированием
Старый 02.04.2013, 22:51   #3
Че Гевара
Форумчанин
 
Аватар для Че Гевара
 
Регистрация: 25.09.2012
Сообщений: 182
По умолчанию

Просто жахните в конце программы
Код:
return 0;
и эта ошибка должна пройти
Отладка кода вдвое сложнее, чем его написание. Так что если вы пишете код настолько умно, насколько можете, то вы по определению недостаточно сообразительны, чтобы его отлаживать.
Brian W. Kernighan.
Че Гевара вне форума Ответить с цитированием
Старый 02.04.2013, 22:56   #4
_Bers
Старожил
 
Регистрация: 16.12.2011
Сообщений: 2,329
По умолчанию

Цитата:
Сообщение от Че Гевара Посмотреть сообщение
Просто жахните в конце программы
Код:
return 0;
и эта ошибка должна пройти
1. Dev ругается на виндузятный void main(). По стандарту функция должна возвращать int, а не void.

2. По стандарту, независимо от прототипа функции, main всегда возвращает некий int, даже если программист явно ничего не указал.
_Bers вне форума Ответить с цитированием
Старый 02.04.2013, 23:31   #5
Че Гевара
Форумчанин
 
Аватар для Че Гевара
 
Регистрация: 25.09.2012
Сообщений: 182
По умолчанию

Цитата:
Сообщение от _Bers Посмотреть сообщение
Dev ругается на виндузятный void main()
Это я проморгал, впрочем в Dev-C++ можно писать просто main(), без ничего, и ничего не возвращать, она и так проглотит, главное, чтобы это в привычку не вошло. Мне самому больше интересно другое
Код:
void main(int n,int s[])
Откуда это автор передаёт в main() переменную n и массив s? Ведь так дела не делаются.
Отладка кода вдвое сложнее, чем его написание. Так что если вы пишете код настолько умно, насколько можете, то вы по определению недостаточно сообразительны, чтобы его отлаживать.
Brian W. Kernighan.
Че Гевара вне форума Ответить с цитированием
Старый 03.04.2013, 14:23   #6
Megapol
Пользователь
 
Регистрация: 28.12.2011
Сообщений: 29
По умолчанию

а куда тут ставить то?я поставил после if (b==1) s[j++]=i; return 0; такая же ошабка.
void main(int n,int s[]) вместо void поставил int только сразу закрывается , но оштбок нету
Megapol вне форума Ответить с цитированием
Старый 03.04.2013, 14:35   #7
Че Гевара
Форумчанин
 
Аватар для Че Гевара
 
Регистрация: 25.09.2012
Сообщений: 182
По умолчанию

Чтобы не закрывалось подключи conio.h
Код:
#include <conio.h>
и перед return напиши
Код:
getch();
Отладка кода вдвое сложнее, чем его написание. Так что если вы пишете код настолько умно, насколько можете, то вы по определению недостаточно сообразительны, чтобы его отлаживать.
Brian W. Kernighan.
Че Гевара вне форума Ответить с цитированием
Старый 03.04.2013, 15:11   #8
Megapol
Пользователь
 
Регистрация: 28.12.2011
Сообщений: 29
По умолчанию

Код:
#include <iostream.h>
#include <conio.h>
#include <math.h>
int main(int n,int s[])
{
    int i,b;
    int j=0;
    for (i=2; j!=n;i++)
    {
        b=i;
        while (b!=1)
        {
            if(b%2==0) b/=2; else
            if(b%3==0) b/=3; else
            if(b%5==0) b/=5; else break;
        }
        if (b==1) s[j++]=i;
     }
    cin.get();
    getch();
}
она не считает вводишь число нажимаешь ентер она закрывается

Последний раз редактировалось Stilet; 03.04.2013 в 15:23.
Megapol вне форума Ответить с цитированием
Старый 03.04.2013, 15:23   #9
Stilet
Белик Виталий :)
Старожил
 
Аватар для Stilet
 
Регистрация: 23.07.2007
Сообщений: 57,097
По умолчанию

Не удивительно.
Нужно хотя бы для приличия написать в начале cin>>n
А само n вынести из параметров main() внутрь, как описаны i и b
I'm learning to live...
Stilet вне форума Ответить с цитированием
Старый 03.04.2013, 15:28   #10
_Bers
Старожил
 
Регистрация: 16.12.2011
Сообщений: 2,329
По умолчанию

Цитата:
Сообщение от Megapol Посмотреть сообщение
#include <iostream.h>
#include <conio.h>
#include <math.h>
int main(int n,int s[])
{
int i,b;
int j=0;
for (i=2; j!=n;i++)
{
b=i;
while (b!=1)
{
if(b%2==0) b/=2; else
if(b%3==0) b/=3; else
if(b%5==0) b/=5; else break;
}
if (b==1) s[j++]=i;
}
cin.get();
getch();
}
она не считает вводишь число нажимаешь ентер она закрывается
1. Программа действительно "что-то" считает.
2. Когда ты нажимаешь ентер, то она действительно закрывается. Именно так она и должна себя вести, согласно коду программы.

3. Не совсем понятно условие задачи. Я решил не заморачиваться и оставить все как есть, единственное - специально для тебя добавил вывод результатов расчетов в консоль:

http://liveworkspace.org/code/4qtYY6$5

Код:
//Дано натуральное число n. 
//Получить в порядке возрастания n первых натуральных чисел ,
//которые не делятся на ни на какие простые числа ,кроме 2,3 и 5.

#include <iostream>
#include <math.h>
using namespace std;

int main()
{
  int n=10;   //<--- какое количество чисел нужно найти так, что бы эти числа,
              //     начиная с 2 включительно, делились на 2,3 и 5 
  
  int s[255]; //<--- получатель результатов
  
  int i,b;
  int j=0;
  for (i=2; j!=n;++i)
  {
    b=i;
    while (b!=1)
    {
      if(b%2==0) b/=2; else
      if(b%3==0) b/=3; else
      if(b%5==0) b/=5; else break;
    }
    if (b==1) 
    {
      s[j++]=i;
      cout<<"s["<<j<<"] = "<<i<<endl;
    }
  }
}

Последний раз редактировалось _Bers; 03.04.2013 в 15:39.
_Bers вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
задача на зачёт. проблема Задача на нобелевскую премию! Sabotage5 Паскаль, Turbo Pascal, PascalABC.NET 2 18.03.2013 15:18
Задача по подсчёту статистики использования букв. Другая задача - по длинной арифметике Pascal ABC kimberly Паскаль, Turbo Pascal, PascalABC.NET 3 24.12.2012 17:03
задача на структуру(struct)/задача на работу с файлом SevenArth Помощь студентам 0 26.04.2012 19:06
Задача на оптимальный расчет маршрута (задача в презентации) в табличном процессоре Excel Toofed Помощь студентам 0 30.11.2011 01:12
Задача минимизации дисбаланса на линии сборки (задача минимакса) LenZab Microsoft Office Excel 13 13.03.2011 22:51