Форум программистов, компьютерный форум CyberForum.ru

опять не могу найти ошибку =\ - C++

Восстановить пароль Регистрация
 
Drendi1024
0 / 0 / 0
Регистрация: 27.12.2011
Сообщений: 5
31.12.2011, 18:39     опять не могу найти ошибку =\ #1
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
#include <iostream>
 
using std::cout;
using std::endl;
 
int main()
{
    for (int i=1;i<=1000000;i++)
    {
        int b=0;
        for (int a=1;a<=(i-1);a++)
        {
            if (i%a!==0)
            b==b+a;
            if (b==i)
            cout << i << endl;
            }
            }
            return 0;
            system("pause");
            }
недавно начал изучать с++, и решил сделать программу, по выводу на экран совершенных чисел
программа на паскале есть:
Pascal
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
var
  I,a,b,x,x1:integer;
begin
  writeLn('vvedite diapozon chisel');
  ReadLn(x,x1);
  for I:=x to x1 do
   begin
     b:=0;
     for a:=1 to i-1 do
      if (i mod a)=0 then
      b:=b+a;
     if b=I then
     WriteLn(i);
   end;
  ReadLn;
end.
сижу уже битые полчаса...пытаюсь найти ошибку, путем сравнения обоих программ, но нифига

заранее спасибо!
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
31.12.2011, 18:39     опять не могу найти ошибку =\
Посмотрите здесь:

C++ Не могу найти ошибку
C++ Не могу найти ошибку
C++ Не могу найти ошибку
C++ Не могу найти ошибку
Не могу найти ошибку C++
Не могу найти ошибку C++
C++ Не могу найти ошибку
C++ Не могу найти ошибку
Не могу найти ошибку C++
Не могу найти ошибку C++
Не могу найти ошибку C++

Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
Диман56
22 / 22 / 0
Регистрация: 07.11.2011
Сообщений: 154
31.12.2011, 18:51     опять не могу найти ошибку =\ #2
1.Вместо
C++
1
2
using std::cout;
using std::endl;
можно написать
C++
1
using namespace std;
2.Где ввод диапазона на С, который есть в Паскале?
3.Вы в for, который на С, каждый раз объявляете переменную b:=0;
4.Вы во вложенном for на С, каждый раз объявляете переменную а.
5.
C++
1
if (i%a!==0)
-что такое? Надо
C++
1
(i%a==0)
6. Что за?
C++
1
b==b+a;
Надо
C++
1
b=b+a;
7.Вы каждый раз объявляете переменную i.
Вроде пока что всё. Помните: =-знак присваивания, ==-знак проверки на равенство!!

Добавлено через 4 минуты
В общем, надо примерно так:
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
#include <iostream>
 
using namespace std;
 
int main()
{
int x,x1,i,a,b;
cout<<"Введите диапазон"<<endl;
cin>>x,x1;
    for (i=x;i<=x1;i++)
    {
        b=0;
        for (a=1;a<=(i-1);a++)
        {
            if (i%a==0)
            b=b+a;
            if (b==i)
            cout << i << endl;
            }
            }
            return 0;
            system("pause");
            }
Drendi1024
0 / 0 / 0
Регистрация: 27.12.2011
Сообщений: 5
31.12.2011, 19:07  [ТС]     опять не могу найти ошибку =\ #3
спасибо большое)
я же говорю, я только учусь

странно, что программа выводит по нескольку раз одни и те же числа, а потом закрывается (не срабатывает system(pause))
Dekio
Фрилансер
Эксперт C++
 Аватар для Dekio
5817 / 1215 / 214
Регистрация: 23.11.2010
Сообщений: 3,378
Записей в блоге: 1
01.01.2012, 03:35     опять не могу найти ошибку =\ #4
Цитата Сообщение от Диман56 Посмотреть сообщение
return 0; system("pause");
Думать надо, что писать
Диман56
22 / 22 / 0
Регистрация: 07.11.2011
Сообщений: 154
01.01.2012, 15:22     опять не могу найти ошибку =\ #5

Не по теме:

I m sorry

Надо только
C++
1
system("pause");
Yandex
Объявления
01.01.2012, 15:22     опять не могу найти ошибку =\
Ответ Создать тему
Опции темы

Текущее время: 05:16. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru