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

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

Вернуться   Форум программистов > IT форум > Помощь студентам
Регистрация

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 19.03.2013, 20:04   #1
ezhidudek
Пользователь
 
Регистрация: 30.11.2012
Сообщений: 43
По умолчанию Решето Эратосфена

Добрый день!помогите пожалуйста найти ошибку.код состоит из трех файлов.в первом из них-ошибка,подскажите,какая?остальные две части прикрепляю для
понимания.
вот здесь ошибка.

Код:
#include <stdio.h>
#include "eratosthenes.h"
 
#define VELIKOST 100
 
int main(void)
{
    int i, pole[VELIKOST];
 
    eratosthena_resheto(pole, VELIKOST);
 
    printf("Все простые числа меньше ,чем %d равны:", VELIKOST);
    for (i = 0; i <= VELIKOST; i++)
        if (pole[i])
            printf(" %d", i);
 
    printf("\n");
 
    return 0;
}
вот остальные две части

Код:
#ifndef _ERATOSTHENES_H_
#define _ERATOSTHENES_H_
 
 
void eratosthena_resheto(int pole[], unsigned int razmer);
 
 
#endif
и последняя
Код:
void eratosthena_resheto(int pole[], unsigned int velikost)
{
    int i, j, granica_sverhu = sqrt(velikost);
 
    pole[0] = 0;
    pole[1] = 0;
    for (i = 2; i < velikost; i++)
        pole[i] = 1;
 
    for (i = 2; i < granica_sverhu; i++)
        if (pole[i])
            for (j = i*i; j < velikost; j += i)
                pole[j] = 0;
 
}
повторяю-нужно найти ошибку в первом файле..Спасибо заранее.
ezhidudek вне форума Ответить с цитированием
Старый 19.03.2013, 21:39   #2
s-andriano
Старожил
 
Аватар для s-andriano
 
Регистрация: 08.04.2012
Сообщений: 3,229
По умолчанию

Первая ошибка - цикл нужно начинать с 2.
s-andriano вне форума Ответить с цитированием
Старый 19.03.2013, 22:09   #3
ezhidudek
Пользователь
 
Регистрация: 30.11.2012
Сообщений: 43
По умолчанию

Цитата:
Сообщение от s-andriano Посмотреть сообщение
Первая ошибка - цикл нужно начинать с 2.
понимаю.тут вопрос именно в первом файле,остальное не шибко важно..
ezhidudek вне форума Ответить с цитированием
Старый 19.03.2013, 22:49   #4
ezhidudek
Пользователь
 
Регистрация: 30.11.2012
Сообщений: 43
По умолчанию

подсказали уже.кому интересн,причина-
Выход за границу массива при последней итерации

for (i = 0; i < VELIKOST; i++)
ezhidudek вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Решето эротосфена(С++) Alex_Dep Помощь студентам 3 22.09.2012 23:46
решето эратосфена Выхухольxxx Общие вопросы Delphi 1 06.06.2011 13:20
[C++] Решето эратосфена, где баг ? Silly Student Помощь студентам 3 20.04.2011 13:06
Решето Эратосфена cbuilderx Помощь студентам 1 25.10.2010 18:44