Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > Центр помощи > [C++]Создать массив


Автор: Be_Happy 28.10.2007, 21:41
Код

#include<iostream.h>
#include<math.h>
void main(void)
{
    int A[100];
    int a;
    double c;
    double d;
    cout<<"Enter a:"<<endl;
    cin>>a;
    int n=0;
M1:
    if(n<a)
    {
        cout<<"Input A["<<n<<"]"<<endl;
        cin>>A[n];
    for(int b=2;b<A[n];b++)
    {
        if(A[n]%b==0)
        {
            d=n;
            break;
        }
        else
        c=n;
        }
        n++;
        goto M1;

        }
    cout<<"Nomer:"<<c<<endl;
}


Эта прога выводит последнее число n=c полученное в процессе вычисления, а нужно чтобы она выводила массив c из всех n,высчитываемых в программе, как дополнить код?

Автор: Sergio02 28.10.2007, 22:26
А что программа должна делать?

Автор: Be_Happy 28.10.2007, 22:31
выводить номера простых чисел в вводимом массиве

Автор: Sergio02 28.10.2007, 23:19
Код

#include<iostream.h>
#include<math.h>
void main(void)
{
    int A[100];
    int a;
    int j=0;
    bool fl=false;
    int c[100];
    double d;
    cout<<"Enter a:"<<endl;
    cin>>a;
    int n=0;
M1:
    if(n<a)
    {
        cout<<"Input A["<<n<<"]"<<endl;
        cin>>A[n];
        for(int b=2;b<A[n];b++)
        {
            if(A[n]%b==0)
            {
                 d=n;
                 fl=true;
                 break;
            }
            else
            {
                 c[j]=n;
            }
        }
        if(fl==false)
        {
              j++;
        }
        n++;
        fl=false;
        goto M1;

    }
    for(int b=0;b==j;b++)
    {
    cout<<"Nomer:"<<c[j]<<endl;
    }
}


Тебя не учили код форматировать?

Автор: Optimus 28.10.2007, 23:24
Цитата(Be_Happy @  28.10.2007,  22:31 Найти цитируемый пост)
выводить номера простых чисел в вводимом массиве 

Be_Happy, а что не устраивает в этой темеhttp://forum.vingrad.ru/forum/topic-178156.html 

Автор: Be_Happy 29.10.2007, 18:11
Optimus, 
Цитата(Optimus @  28.10.2007,  23:24 Найти цитируемый пост)
Be_Happy, а что не устраивает в этой теме[C++]поиск номера простого числа в массиве  

Там алгоритм сложный для меня, и выводит не номера чисел а сами числа=)

Sergio02, 
А эта прога вобще ничего не выводит у меня,нет никакого значения,только вводится массив и всё=)

Автор: Optimus 29.10.2007, 18:37
Код

#include<iostream.h>
#include <conio.h>

void main(void)
{
  clrscr();

  const int SIZE = 10;
  int A[SIZE];
  int i;
  int j;
  int temp;
  int isPrime;

  i = 0;
  while (i < SIZE)
  {
    cout << "Enter A[" << i << "] -> ";
    cin >> temp;

    if(temp > 0)
    {
      A[i++] = temp;
    }
  }

  for (i = 0; i < SIZE; ++i)
  {
    isPrime = 1;

    for (j = 2; j < A[i]; ++j)
    {
      if (A[i] % j == 0)
      {
        isPrime = 0;
        break;
      }
    }

    if (isPrime == 1 )
    {
      cout << "index = " << i << " number = " << A[i] << endl;
    }
  }

  getch();
}

по суть это тот же самый алгоритм, но этот работает медленнее

если в массиве есть простые числа, то выводится индекс и само число

Автор: Be_Happy 29.10.2007, 19:14
Цитата(Optimus @  29.10.2007,  18:37 Найти цитируемый пост)
clrscr();

Что это такое?

Автор: Optimus 29.10.2007, 19:18
clrscr() - очищает экран, можно не писать

Автор: Be_Happy 29.10.2007, 19:34
Цитата(Optimus @  29.10.2007,  18:37 Найти цитируемый пост)
if(temp > 0)    {      A[i++] = temp;    }

А это для чего писать и temp тоже самое что у меня A[n]?

Автор: Optimus 29.10.2007, 19:54
temp это переменная которая содержит временное значение
если temp больше нуля то  i-тому элементу массива A присваивается значение переменной temp

Автор: Be_Happy 29.10.2007, 20:40
Optimus, а что происходит начиная с 29 строчки и что делает isPrime?

Автор: Optimus 29.10.2007, 21:04
isPrime это флаг, если в ней хранится  1значит оно простое

Цитата(Optimus @  29.10.2007,  18:37 Найти цитируемый пост)
 if (A[i] % j == 0)
      {
        isPrime = 0;
        break;
      }

если A[i] делится без остатка на j значит оно не простое

Автор: Be_Happy 29.10.2007, 21:49
Цитата(Optimus @  29.10.2007,  18:37 Найти цитируемый пост)
getch();

Последние 2 вопроса и я всё понял:
1)что это такое?
2)зачем вначале писать isPrime = 1;?

Автор: Be_Happy 29.10.2007, 22:06
Optimus
Ман, всё разобрал, реально огромнейшее тебе спасибо!!!=)

Автор: Sergio02 29.10.2007, 22:25
Цитата(Be_Happy @ 29.10.2007,  20:40)
Sergio02, 
А эта прога вобще ничего не выводит у меня,нет никакого значения,только вводится массив и всё=)

Извиняюсь, вчера просто не было возможности проверить и спать сильно хотелось.
Это точно работает, проверил:
Код

#include<iostream>
#include<math.h>
#include "conio.h"


void main(void)
{
    int A[100];
    int a;
    int j=0;
    bool fl=false;
    int c[100];
    double d;
    cout<<"Enter a:"<<endl;
    cin>>a;
    int n=0;
M1:
    if(n<a)
    {
        cout<<"Input A["<<n<<"]"<<endl;
        cin>>A[n];
        for(int b=2;b<A[n];b++)
        {
            if(A[n]%b==0)
            {
                 d=n;
                 fl=true;
                 break;
            }
            else
            {
                 c[j]=n;
            }
        }
        if(fl==false)
        {
              j++;
        }
        n++;
        fl=false;
        goto M1;

    }
    for(int b=0;b<j;b++)
    {
    cout<<"Nomer:"<<c[b]<<endl;
    }
    getch();
}

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)