С Новым годом! Форум программистов, компьютерный форум, киберфорум
Наши страницы

С++ для начинающих

Войти
Регистрация
Восстановить пароль
 
Рейтинг: Рейтинг темы: голосов - 12, средняя оценка - 5.00
MasterRO
37 / 5 / 3
Регистрация: 15.09.2011
Сообщений: 73
#1

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

09.07.2012, 00:17. Просмотров 1806. Ответов 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
Здравствуйте! Я подобрал для вас темы с ответами на вопрос Проверить, является ли вводимое число степенью числа 3 (C++):

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

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

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

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

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

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

9
IGPIGP
Комп_Оратор)
Эксперт по математике/физике
6513 / 3150 / 309
Регистрация: 04.12.2011
Сообщений: 8,720
Записей в блоге: 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
Комп_Оратор)
Эксперт по математике/физике
6513 / 3150 / 309
Регистрация: 04.12.2011
Сообщений: 8,720
Записей в блоге: 5
09.07.2012, 00:44 #4
Цитата Сообщение от Flexoid1 Посмотреть сообщение
Я бы сделал вот так:
Так функцию, бы в цикле вызвать. И что бы возвращала const *char... В файл.)

Не по теме:

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

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 / 3
Регистрация: 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
Комп_Оратор)
Эксперт по математике/физике
6513 / 3150 / 309
Регистрация: 04.12.2011
Сообщений: 8,720
Записей в блоге: 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
5428 / 4823 / 442
Регистрация: 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
Модератор
22915 / 11281 / 1833
Регистрация: 12.02.2012
Сообщений: 18,492
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
Комп_Оратор)
Эксперт по математике/физике
6513 / 3150 / 309
Регистрация: 04.12.2011
Сообщений: 8,720
Записей в блоге: 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
Привет! Вот еще темы с ответами:

Как на стадии компиляции проверить что число является степенью двойки - C++
Очень простой вопрос - как на стадии компиляции проверить что число является степенью двойки? Как проверить на стадии исполнения знаю, но...

Является ли число степенью другого числа - C++
Нужна функция которая проверяет, является ли число степенью какого либо другого числа. Ломаю голову, но пока не смог придумать как это...

Фунция, проверяющая, является ли число степенью числа 5 - C++
Описать функцию IsPower5(K) логического типа, возвращающую True, если целый параметр K (&gt; 0) является степенью числа 5, и False в противном...

Определить, является ли натуральное число k степенью числа - C++
2. Составить программу для определения, является ли натуральное число k степенью числаВнимательнее выбирайте раздел для размещения тем


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

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

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