Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / C++ [игнор отключен] [закрыт для гостей] / запись элементов массива с простыми числами в матрицу / 6 сообщений из 6, страница 1 из 1
28.10.2006, 21:38
    #34088869
Оля-ля++
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
запись элементов массива с простыми числами в матрицу
Доброго здравица, уважаемые!
Есть вещь:
#include <iostream.h>
#include <stdio.h>
#include <math.h>
static const int N=100;

int main()
{
int k, s, g[5][5];
int i, a[N];
for(i=2; i<N; i++) a =1;
for(i=2; i<N; i++)
if(a)
for(int j=i; j*i<N; j++) a[i*j]=0;
for(i=2; i<N; i++)
if (a)
cout<<" "<<i;
cout<<endl;


for(i=0; i<N; i++)
{

if(a)

for(k=0; k<5; k++)
for(s=0; s<5; s++)
{
g[k][s]=a;
}
for(k=0; k<5; k++)
{
for(s=0; s<5; s++)
cout<<g[k][s]<<"\t";
cout<<endl;
}
}

}
Хотелось бы, чтобы путем перезаписи элементов массива в матрицу появилась табличка (5*5) с простыми числами. Но увы! Подскажите, в чем причина!!! Заранее спасибо!
...
Рейтинг: 0 / 0
28.10.2006, 23:22
    #34088930
JibSkeart
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
запись элементов массива с простыми числами в матрицу
А что мешае ипоьзовать [src][/ src] тег ?
...
Рейтинг: 0 / 0
29.10.2006, 02:05
    #34089010
Forgottn
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
запись элементов массива с простыми числами в матрицу
Вещь(слегка исправленная):
Код: plaintext
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.
26.
27.
28.
29.
30.
31.
#include <iostream.h>
#include <stdio.h>
#include <math.h>
static const int N= 100 ;

int main()
{
  int k, s, g[ 5 ][ 5 ]; 
  int i, a[N];
  for(i= 2 ; i<N; i++) a= 1 ;
  for(i= 2 ; i<N; i++)
    if(a)
      for(int j=i; j*i<N; j++) a[i*j]= 0 ;
  for(i= 2 ; i<N; i++)
    if (a)
      cout<<" "<<i;
  cout<<endl;
  for(i= 0 ; i<N; i++)
  {
    if(a)
      for(k= 0 ; k< 5 ; k++)
        for(s= 0 ; s< 5 ; s++)
          g[k][s]=a;
      for(k= 0 ; k< 5 ; k++)
      {
        for(s= 0 ; s< 5 ; s++)
          cout<<g[k][s]<<"\t";
        cout<<endl;
      }
  }
}

Оля-ля++static const int N=100;
Вы сами-то поняли, что написали?

Оля-ля++for(i=2; i<N; i++) a=1;
Всегда думал, что массив заполняется с нулевого элемента, но это еще не самое страшное... Страшно то, что в массив(!)a[N] N раз записыается единица!!! По логике вещей это должно выглядеть так:
Код: plaintext
1.
  for(i= 0 ; i<N; i++) a[i] =  1 ;

Оля-ля++for(int j=i; j*i<N; j++) a[i*j]=0;
Вот эта строка меня поразила до глубины души... Потом я решил привести исходник к читабельному виду. Отпустило...

Дальше смотреть совсем страшно: один блок
Код: plaintext
1.
2.
3.
for(i= 2 ; i<N; i++)
    if(a)
      for(int j=i; j*i<N; j++) a[i*j]= 0 ;
чего стоит... После того как массив похерен в него записывается черти что... Смею вас уверить, что на одиннадцатой итерации внешнего цикла j*i превысит N = 100, т.к. начальное значение внутреннего цикла будет i*i = 121... Условный оператор внутри цикла меня тоже безумно радует...

Фсе... надоело.... разбор полетов закрыт... Сейчас я напишу программу, которая требуется, но!
люди!!! RTFM, RTFM, RTFM, Шилдт, Страуструп, еще раз Шилдт и только потом складывайте на форум такую гадость...

Код: plaintext
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>

#define N  100 

int main()
{
  int i, j, a[N], g[ 5 ][ 5 ];
  for(i =  0 ; i < N; i++)
    a[i] =  1 ;
  for(i =  0 ; i < N; i++)
    printf("%d ", a[i]);
  for(i =  0 ; i <  5 ; i++)
    for(j =  0 ; j <  5 ; j++)
      g[i][j] = a[i*j + j];
  for(i =  0 ; i <  5 ; i++)
  {
    printf("\n");
    for(j =  0 ; j <  5 ; j++)
      printf("%d ", g[i][j]);
  }
  return  0 ;
}
...
Рейтинг: 0 / 0
29.10.2006, 16:20
    #34089433
Оля-ля ++
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
запись элементов массива с простыми числами в матрицу
Да, но если мне не изменяет интуиция, ничего путевого из последней программы тоже не выйдет.
...
Рейтинг: 0 / 0
29.10.2006, 18:32
    #34089523
maXmo
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
запись элементов массива с простыми числами в матрицу
Forgottn Оля-ля++for(i=2; i<N; i++) a=1;
Всегда думал, что массив заполняется с нулевого элемента, но это еще не самое страшное... Страшно то, что в массив(!)a[N] N раз записыается единица!!! можешь посмотреть, что постил автор
...
Рейтинг: 0 / 0
30.10.2006, 19:41
    #34092367
MasterZiv
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
запись элементов массива с простыми числами в матрицу
Вот так вот студенты и делают свои домашние задания ....
...
Рейтинг: 0 / 0
Форумы / C++ [игнор отключен] [закрыт для гостей] / запись элементов массива с простыми числами в матрицу / 6 сообщений из 6, страница 1 из 1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]