Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / C++ [игнор отключен] [закрыт для гостей] / Как избавиться от ошибки??? / 6 сообщений из 6, страница 1 из 1
14.09.2016, 18:37
    #39309260
mx_1
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как избавиться от ошибки???
Выдает ошибку при компиляции программы, выводящую формулу разложения простого числа на сумму квадратов, являющихся его множителями:
Код: 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.
32.
33.
34.
35.
36.
37.
38.
39.
40.
41.
42.
#include <iostream>
#include "stdafx.h"
using namespace std;

bool prostoeLi (int number)
{
	bool otv;
	int  i = 2, schetchik = 2;
	{
		while (i < number)
		{
			if (number % i == 0)
				i++;
			else
			{
				schetchik++;
				i++;
			}
			if (i == schetchik)
				otv = true;
			else
				otv = false;
		}
	}
	return otv;
}

int main()
{
	int number;

	for (int i = 1; i <= 10; i++)
	{
		for (int j = 1; j <= 10; j++)
		{
			number = i*i + j*j;
			if (prostoeLi(number))
				cout << i << "^2 + " << j << "^2 = " << number << endl;
		}
	}
	return 0;
}



Другие алгоритмы не предлагать!!!
...
Рейтинг: 0 / 0
14.09.2016, 18:43
    #39309266
Изопропил
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как избавиться от ошибки???
...
Рейтинг: 0 / 0
15.09.2016, 00:04
    #39309357
Siemargl
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как избавиться от ошибки???
mx_1,

погуглить run time check failure #3
...
Рейтинг: 0 / 0
15.09.2016, 01:27
    #39309375
Пётр Седов
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как избавиться от ошибки???
mx_1Выдает ошибку при компиляции программы,Это ошибка при выполнении программы (run-time), а не при компиляции. При вызове prostoeLi(2) тело цикла ни разу не выполняется, переменная otv остаётся неинициализированной, и возвращается неинициализированная переменная. Скорее всего, из-за этого ошибка.
...
Рейтинг: 0 / 0
17.09.2016, 14:41
    #39310821
mx_1
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как избавиться от ошибки???
Спасибо, ошибку исправил
...
Рейтинг: 0 / 0
20.09.2016, 06:38
    #39311611
SashaMercury
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как избавиться от ошибки???
mx_1 Выдает ошибку при компиляции программы, выводящую формулу разложения простого числа на сумму квадратов, являющихся его множителями:

у простых чисел есть только два множителя 1 и само число собственно.

mx_1
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
bool prostoeLi (int number)
{
	bool otv;
	int  i = 2, schetchik = 2;
	{
		while (i < number)
		{
			if (number % i == 0)
				i++;
			else
			{
				schetchik++;
				i++;
			}
			if (i == schetchik)
				otv = true;
			else
				otv = false;
		}
	}
	return otv;
}



Как вы умудрились придумать такую реализацию?) Как это ни странно, но она вероятно должна работать. Кроме частных случаев - 1 и 2. Хотя в ней столько несуразицы и казалось бы явных ошибок. Впрочем не тестировал, потому возможно ошибаюсь. Но если не ошибаюсь, отличный пример для IOCCC, с некоторыми доработками конечно
...
Рейтинг: 0 / 0
Форумы / C++ [игнор отключен] [закрыт для гостей] / Как избавиться от ошибки??? / 6 сообщений из 6, страница 1 из 1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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