Пятница, 29 Марта 2024, 11:44

Приветствую Вас Гость

[ Новые сообщения · Игроделы · Правила · Поиск ]
  • Страница 2 из 2
  • «
  • 1
  • 2
Форум игроделов » Программирование » C/C++ » Ввод в массив (С++)
Ввод в массив
Shevron_7Дата: Суббота, 18 Мая 2013, 15:55 | Сообщение # 21
маньяк-бомбист
Сейчас нет на сайте
Не могу ничего придумать? Мож у кого-то есть идия?

Добавлено (17.05.2013, 20:42)
---------------------------------------------
Очень хороший код

Код
#include <stdio.h>  
  #include <stdbool.h>  
  #define SIZE 10  

  bool isPrime (int number) {  
       if (number != 2 && (number % 2) ==  0 || number <= 1) return false;  
       else {  
         auto int i;  
         for (i = 3; i < number - 2; i += 2) {  
           if ( (number % i) ==0) return false;  
         }  
       }  
       return true;  
  }  

  int main (void) {  
       int number;  
       int array[SIZE] = {0};  
       int i;  

       for (i = 0; i < SIZE; i++) {  
         scanf("%i", &number);  
         if (!isPrime(number)) array[i] = number;  
         else break;  
       }  
       return 0;  
  }

можна его из коментами?

Добавлено (17.05.2013, 21:04)
---------------------------------------------
Вот, немного переделал и коечто добавил, вроде как то что нужно!!! cool

Код

#include <cstdlib>
#include <iostream>
#include <stdio.h>  
#include <stdbool.h>  
#define SIZE 10  
using namespace std;

  bool isPrime (int number)  
  {  
       if (number != 2 && (number % 2) ==  0 || number <= 1)  
       {
    return false;  
    }
       else  
    {  
         auto int i;  
         for (i = 3; i < number - 1; i += 2)  
   {  
           if ( (number % i) ==0) return false;  
         }  
       }  
       return true;  
}
  int main (void)  
  {  
       int number,summa = 0;  
       int array[SIZE] = {0};  
       int i;  

       for (i = 0; i < SIZE; i++)  
    {  
         scanf("%i", &number);  
         if (isPrime(number))
         {
   break;     break;  
      }
         else  
         {
         array[i] = number;
         }
    }
    setlocale(0,"");
cout<<"Было введено простое число, ввод элементов остановлен!\n";     
cout<<"Числа попадающие в диапазон между первым и вторым введенныв числом: ";  
  for (int j=0;j<SIZE;j++)  
  {  
  if (array[j]>array[0] && array[j]<array[1])  
          {  
           summa = summa+array[j];  
            cout<<array[j]<<"  ";                      
       }  
  }  
cout<<"\nСумма чисел попадающих в диапазон между первым и вторым введенным числом: "<<summa<<"\n";   
      
      
system("PAUSE");
}

З.Ы. в некоторых строках не очень разобрался biggrin нужны коменты к ним smile

Добавлено (18.05.2013, 15:55)
---------------------------------------------
все, сам разобрался


TEST =>
Мои игры:
Kill your brain
Space Conflict
Zombie Day
Bounce PC
Extra ball 2012

Это спасибо в карман не положишь, а в репутацию можно. +1
Revolver_45Дата: Суббота, 18 Мая 2013, 20:51 | Сообщение # 22
почетный гость
Сейчас нет на сайте
Shevron_7, Ну молодец, только не перемешивай Си с Сиплюсами - это же не красиво совсем и не культурно.

rtytyrtyr
NazaДата: Воскресенье, 02 Июня 2013, 00:24 | Сообщение # 23
GMUser
Сейчас нет на сайте
Shevron_7, не надо проверять до number - 2, стоит лишь проверить до sqrt(number).
Вот переделанная функция проверки на простоту:
Код
bool isPrime (int number)   
{    
         if (number != 2 && (number % 2) ==  0 || number <= 1)   
             return false;    
         else   
         {    
            auto int i;    
            for (i = 3; i * i <= number; i += 2) {    
                if (number % i == 0) return false;    
            }    
         }    
         return true;    
    }  

Можно использоватьрешето Эратосфена, займет больше памяти, зато работать будет быстрее.


Сообщение отредактировал Naza - Воскресенье, 02 Июня 2013, 00:25
Форум игроделов » Программирование » C/C++ » Ввод в массив (С++)
  • Страница 2 из 2
  • «
  • 1
  • 2
Поиск:

Все права сохранены. GcUp.ru © 2008-2024 Рейтинг