Главная
Регистрация
Вход
Пятница
22.11.2024
21:01
Приветствую Вас, Гость | RSS
[ Новые сообщения · Участники · Правила форума · Поиск · RSS ]
  • Страница 1 из 1
  • 1
Модератор форума: Кирпич, Admin  
Определить количество цифр в числе
studentДата: Пятница, 02.05.2014, 14:17 | Сообщение # 1
Рядовой
Группа: Пользователи
Сообщений: 3
Статус: Offline
Дано натуральное число n (n<10000). Определить сколько цифр в числе, найти первую цифру числа,найти предпоследнюю цифра числа.
P.s Только важное условие чтобы при невыполнении условий, программа не работала. А также оформить с помощью классов.
Мне сказали переделать этот код на язык си(printf, scanf и что то в этом роде), но я понятие не имею как это сделать.
Вот собственно код который у меня получился:
//---------------------------------------------------------------------------
#include 
#include 
#include 
#include 
using namespace std;

//---------------------------------------------------------------------------
class MyInt
{
int Max, countN;
char tmp_str[50];
public:
//-----------------------------------
MyInt(unsigned int MaxSize)
{
Max = MaxSize;
}
//-----------------------------------
bool ScanButtons(const char* Msg)
{
countN = 0;
memset(tmp_str, 0, 50);
char tmp_c;
cout << Msg;
do
{
tmp_c = getch();
if(isdigit(tmp_c))
{
cout << tmp_c ;
tmp_str [countN]= tmp_c;
if(atoi(tmp_str) > Max)
{
cout <<"\n >>>> Entered number > " << Max << " = autocorrected <<<<";
tmp_str [countN]= 0;
tmp_c = 13;
}
countN++;
}
}while(!iscntrl(tmp_c));
cout <<"\n";
return (int(tmp_c) == 27);
}
//-----------------------------------
int GetNumberByPos(unsigned int Pos)
{
if((Pos) >= strlen(tmp_str)) return -1;
char t[2];
t[0] = tmp_str[Pos];
t[1] = 0;
return atoi(t);
}
//-----------------------------------
int GetCount()
{
return strlen(tmp_str);
}
//-----------------------------------
int GetNumber()
{
return atoi(tmp_str);
}
};
//--------------------------------------------------------------------------
int main(int argc, char* argv[])
{
MyInt my(10000);
while(!my.ScanButtons("Enter number please: "))
{
cout << "    OK, your number is = " << my.GetNumber() << "\n";
cout << "    Was entered " << my.GetCount() << " digits \n";
cout << "    My first digit = " << my.GetNumberByPos(0) << "\n";
cout << "    My penult digit = " << my.GetNumberByPos(my.GetCount()-2) << "\n";
cout <<"===========================================================\n";
}
return 0;
}
//---------------------------------------------------------------------------


Сообщение отредактировал Admin - Пятница, 02.05.2014, 15:27
 
AdminДата: Пятница, 02.05.2014, 15:29 | Сообщение # 2
Генералиссимус
Группа: Администраторы
Сообщений: 65
Статус: Offline
Вам нужно приведенный код переделать на чистый Си или это вы уже попробовали сделать?
 
studentДата: Пятница, 02.05.2014, 19:00 | Сообщение # 3
Рядовой
Группа: Пользователи
Сообщений: 3
Статус: Offline
да, мне нужно переделать на чистый си
 
AdminДата: Пятница, 02.05.2014, 20:33 | Сообщение # 4
Генералиссимус
Группа: Администраторы
Сообщений: 65
Статус: Offline
С Си не знаком. Либо программу-конвертер поищите либо в конкретный компилятор код скопируйте и там поочередно правьте ошибки.
 
studentДата: Пятница, 02.05.2014, 20:42 | Сообщение # 5
Рядовой
Группа: Пользователи
Сообщений: 3
Статус: Offline
а не могли бы вы порекомендовать какие-нибудь программы- конвертер?
 
  • Страница 1 из 1
  • 1
Поиск:

Copyright H-L-L.RU © 2024
Сделать бесплатный сайт с uCoz