Форум программистов, компьютерный форум, киберфорум
Наши страницы
С++ для начинающих
Войти
Регистрация
Восстановить пароль
 
Рейтинг 4.64/11: Рейтинг темы: голосов - 11, средняя оценка - 4.64
MasterRO
37 / 5 / 4
Регистрация: 15.09.2011
Сообщений: 73
1

Проверить, является ли вводимое число степенью числа 3

09.07.2012, 00:17. Просмотров 1990. Ответов 9
Метки нет (Все метки)

Помогите, в 22 строке выводит ошибку: "Требуется while".
Программа должна проверять вводимое число является ли оно степень числа 3

C++
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
// Степень числа _3.cpp: определяет точку входа для консольного приложения.
//
 
#include "stdafx.h"
#include <iostream>
using namespace std;
 
int _tmain(int argc, _TCHAR* argv[])
{
    int n,k,i;
    
    cout<<"Wwedite chislo: ";
    cin>>n;
 
     k=1; i=0;
   while (k<=n) do
   {
    if(3*k==n) i=1;
     k=k*3;
   }
 
   if(i==1) cin>>"True";
   else cin>>"False";
 
    return 0;
}
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
09.07.2012, 00:17
Ответы с готовыми решениями:

Дано целое число N (> 0). Проверить,является ли оно степенью числа 3. С++
Дано целое число N (&gt; 0). Если оно является степенью числа 3, то вывести true,...

Проверить, является ли вводимое число пятизначным
Доброго времени суток! Я пока новичок в С++, изучаю, тренируюсь писать...

Проверить, является ли число степенью 3
Данное целое число N ( &gt; 0). Если оно есть степенно числа 3 , то вывести TRUE,...

Проверить, является ли число степенью двойки
Бьюсь с самого утра все никак. Условия Дано натуральное число N. Выведите...

Проверить, является ли число степенью тройки
Написать программу, которая предлагает ввести положительное целое число N. Если...

9
IGPIGP
Комп_Оратор)
Эксперт по математике/физике
7053 / 3356 / 454
Регистрация: 04.12.2011
Сообщений: 9,339
Записей в блоге: 5
09.07.2012, 00:31 2
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 "stdafx.h"
#include <iostream>
using namespace std;
 
int _tmain(int argc, _TCHAR* argv[])
{
   int n, a;
   while (n%3) 
   {
if(a){
cout<<"Specify the number: ";
}
else{
cout<<"Be cearfull! Next try: ";
}
cin>>n;
cout<<"\n";
a=1;   
   }
cout<<"The number has been being entered : "<<n;
system"pause";
 return 0;
}
0
Flexoid1
5 / 5 / 0
Регистрация: 08.07.2012
Сообщений: 20
09.07.2012, 00:37 3
Я бы сделал вот так:
C++
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
#include <iostream>
using std::cin;
using std::endl;
using std::cout;
 
int check ( int );
 
int main()
{
    int number;
    cin >>number;
    if ( check(number) == 1 ) {
        cout<<"Yes";
    }
    else {
        cout<<"No";
    }
}
 
int check ( int number )
{
    int x=1,flag=0;
    do {
        x*=3;
        if ( x > number ) {
            break;
        }
        if ( x == number ) {
            return 1;
            flag=1;
        }
    } while ( flag != 1 );
    return -1;
}
1
IGPIGP
Комп_Оратор)
Эксперт по математике/физике
7053 / 3356 / 454
Регистрация: 04.12.2011
Сообщений: 9,339
Записей в блоге: 5
09.07.2012, 00:44 4
Цитата Сообщение от Flexoid1 Посмотреть сообщение
Я бы сделал вот так:
Так функцию, бы в цикле вызвать. И что бы возвращала const *char... В файл.)

Не по теме:

зы using std::endl; нигде не пригодился. :pardon:

0
Flexoid1
5 / 5 / 0
Регистрация: 08.07.2012
Сообщений: 20
09.07.2012, 00:46 5
Цитата Сообщение от IGPIGP Посмотреть сообщение
Так функцию, бы в цикле вызвать. И что бы возвращала const *char... В файл.)
Можно... Но зачем функцию в цикле вызывать?
C++
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
#include <iostream>
using std::cin;
using std::cout;
 
char check ( int );
 
int main()
{
    int number;
    cin >>number;
    cout<<check(number);
}
 
char check ( int number )
{
    int x=1,flag=0;
    do {
        x*=3;
        if ( x > number ) {
            break;
        }
        if ( x == number ) {
            return 'Y';
            flag=1;
        }
    } while ( flag != 1 );
    return 'N';
}
0
MasterRO
37 / 5 / 4
Регистрация: 15.09.2011
Сообщений: 73
09.07.2012, 01:47  [ТС] 6
Чето я вообще ничего не понимаю, а нельзя перевести мою прогу с Паскаля:

Pascal
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
uses crt;
var
 k,n:integer;
 f:boolean;
Begin
 writeln('Ââåäèòå ÷èñëî: ');
 readln(n);
  k:=1; f:=false;
 while k<=n do
  begin
   if 3*k=n then f:=true;
    k:=k*3;
  end;
 writeln(f);
end.
0
IGPIGP
Комп_Оратор)
Эксперт по математике/физике
7053 / 3356 / 454
Регистрация: 04.12.2011
Сообщений: 9,339
Записей в блоге: 5
09.07.2012, 02:09 7
Цитата Сообщение от IGPIGP Посмотреть сообщение
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 "stdafx.h"
#include <iostream>
using namespace std;
 
int _tmain(int argc, _TCHAR* argv[])
{
   int n, a;
   while (n%3) 
   {
if(a){
cout<<"Specify the number: ";
}
else{
cout<<"Be cearfull! Next try: ";
}
cin>>n;
cout<<"\n";
a=1;   
   }
cout<<"The number has been being entered : "<<n;
system"pause";
 return 0;
}
Вот тут неправильно:
C++
1
int n, a;
забыл что n инициализировать нулем нельзя в этом случае. То есть лучше, например так:
C++
1
2
int n=1;
int a=0;
0
alsav22
5442 / 4837 / 831
Регистрация: 04.06.2011
Сообщений: 13,587
09.07.2012, 08:45 8
Цитата Сообщение от IGPIGP Посмотреть сообщение
Вот тут неправильно:
А в отсальном правильно? Не всякое число, которое без остатка делится на 3, явдяется степенью числа 3.
6, 12, 15 и т.д.

Добавлено через 9 минут
MasterRO, код, вообще-то, почти рабочий. do убрать, и вместо cin, в 22 и 23 , написать cout.
C++
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
// Степень числа _3.cpp: определяет точку входа для консольного приложения.
//
 
#include "stdafx.h"
#include <iostream>
using namespace std;
 
int _tmain(int argc, _TCHAR* argv[])
{
    int n,k,i;
    
    cout<<"Wwedite chislo: ";
    cin>>n;
 
     k=1; i=0;
   while (k<=n)
   {
    if(3*k==n) i=1;
     k=k*3;
   }
 
   if(i==1) cout<<"True";
   else cout<<"False";
 
    return 0;
}
1
Catstail
Модератор
23603 / 11704 / 2046
Регистрация: 12.02.2012
Сообщений: 19,094
09.07.2012, 08:48 9
Автор вопроса просил указать ошибки. Указываю:

C++
1
2
3
4
5
6
7
8
do
   {
    if(3*k==n) i=1;
     k=k*3;
   } while (k<=n);  // условие из заголовка перенесено в конец. ";" - обязательна!
 
   if(i==1) cout << "True";  // cin вместо cout и галки стояли "не в ту сторону"
   else cout << "False";
А в остальном - все ок! Работает...
0
IGPIGP
Комп_Оратор)
Эксперт по математике/физике
7053 / 3356 / 454
Регистрация: 04.12.2011
Сообщений: 9,339
Записей в блоге: 5
09.07.2012, 14:37 10
Цитата Сообщение от alsav22 Посмотреть сообщение
степенью числа 3
Ого! Это я неправ! Простите.
0
09.07.2012, 14:37
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
09.07.2012, 14:37

Проверить, является ли число степенью двойки
Если число степень 2, то ДА, иначе НЕТ. #include &lt;fstream&gt; #include &lt;cstring&gt;...

Определите, является ли число степенью числа 2, и если является, то выведите значение этой степени
Дано натуральное число n. Определите, является ли оно степенью числа 2, и если...

Рекурсия: проверить, является ли число точной степенью двойки
Дано натуральное число N. Выведите слово YES, если число N является точной...


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

Или воспользуйтесь поиском по форуму:
10
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2018, vBulletin Solutions, Inc.
Рейтинг@Mail.ru