Agent Comanche |
08-01-2003 15:45 208532 |
Народ, выручайте, нужно решить задачку
задача такая:
Дано произвольное целое число n. Написать программу, которая разбивает число n на цифры и выводит их на экран; подсчитывает сколько цифр в числе n; находит сумму цифр числа n; меняет порядок цифр числа n на обратный.
... может есть какие-нибудь идеи как решить...
Буду благодарен :pray: :)
|
vasketsov |
08-01-2003 16:29 208533 |
Tanchenko AleXanDr
число делится по цифрам делением n/10 и взятием остатка n%10.
|
Agent Comanche |
08-01-2003 21:35 208534 |
// vasketsov, спасибо... идею понял... щас попробую на практике :)
|
Roman Go |
09-01-2003 17:03 208535 |
незнаю как на си, а на Паскале можно было бы перевести число в строку, а строка это массив, сколько в нем элементов определяется одной процедуркой, сложить по цифиркам это тоже просто, каждый символ в тип интежер и суммируй себе в какой-нибудь переменной, вывести задом наперед, так не с головы строки идти, а с последнего элемента...
ну в Паскале то точно можно так сделать
|
Lunich |
10-01-2003 22:44 208536 |
На С можно преобразовать целое в строку:
//
char buffer[20]
_itoa( n, buffer, 10 );
//
а потом для каждого элемента полученной строки, отняв от него 0х30 получить его значение в int. Кол-во чисел:
//
slren( buffer );
//
|
Я преобразую число(iKod) в строку(c) так:
char c[5];
sprintf(c, "%d", iKod);
|
vasketsov |
23-01-2003 17:13 208538 |
Yagur
а почему 5 а не 12 ?
|
Ork Yason |
24-01-2003 09:11 208539 |
Roman Go
Цитата:
незнаю как на си, а на Паскале можно было бы перевести число в строку, а строка это массив, сколько в нем элементов определяется одной процедуркой, сложить по цифиркам это тоже просто, каждый символ в тип интежер и суммируй себе в какой-нибудь переменной, вывести задом наперед, так не с головы строки идти, а с последнего элемента...
|
конечно проще... но разумнее? быстрее?
сколько нужно ресурсов и процессорного времени для переводов туды сюды? что быстрее работа с текстом или числами?
я по молодости, тоже был любитель стринга... щас меня от него воротит... там все функции и процедуры такие тяжелые... уж лучше как-нить по свойски...
(это я ваще про всякие визуальные языки)
|
Agent Comanche |
14-03-2003 22:36 208540 |
помогите решить еще одну задачу :)
Пользователь вводит с клавиатуры арифметическое выражение (используемые операции только сложение и вычитание). Посчитать его значение. Если в выражении встречаются другие символы, выдать сообщение, что выражение введено не корректно.
---------------------------------------------------------------------
насколько я понимаю :), нужно значение строки преобразовать в число. Это делает вроде бы функция atoi, какие параметры она использует?
это обратная ей. А что здесь есть 10?
Добавлено:
Ork Yason
как всегда флуд
|
Tanchenko AleXanDr
Если без скобок выражение, то решается всё не просто, а очень просто (на голом C):
Код:
int expression(char * expr)
{
int result;
char * c;
result = 0;
c = expr;
if(!isdigit(*c))
{
printf("Ошибочка вышла: \"...%s\"\n", c);
exit(1);
}
for(; isdigit(*c); ++c)
result = result * 10 + (c - '0');
switch(*c)
{
case 0:
return result;
case '+';
return result + expression(c + 1);
case '-';
return result - expression(c + 1);
default:
printf("Ошибочка вышла: \"...%s\"\n", c);
exit(1);
}
}
Основание системы счисления.
|
kgt2003 |
17-06-2003 15:30 208542 |
OFFTOPIC
[s]Исправлено: vasketsov, 21:53 17-06-2003[/s]
|
Agent Comanche |
28-06-2003 14:31 208543 |
Огромная просьба, если не сложно, объясните что "делает" каждая строка:
Код:
#include <io.h>
#include <string.h>
#include <fstream.h>
void Find();
int FindText();
void main()
{
* *Find();
}
int FindText (char filename[],char search[])
{
* *int k=0;
* *// НАЧИНАЯ ОТСЮДА
* *fstream fst (filename,ios::in|ios:: out|ios::app);
* *fst.close();
* *fst.open(filename,ios:: out|ios::in);
* *char buf [255];
* *while (fst.good())
* *{
fst.getline(buf,255);
* * * *if(strstr(buf,search)!=NULL)
{k=1;break;}
else
{k=0;}
* *}
* *fst.close();
return k;
}
void Find()
{
char path[150],path1[70],p[70];
cout <<"\nEnter path: ";
cin>>path;
strcpy(path1,path);
strcpy(p,path1);
char mask[15];
cout <<"\nEnter mask (for example, *.*, *.txt):";
cin>>mask;
char Ssearch[255];
cout<<"\nWhat word we shall search? ";
cin>>Ssearch;
strcat(path, mask);
_finddata_t *fileinfo=new _finddata_t;
* * * * long done = _findfirst(path,fileinfo);
int MayWeWork=done,kkk;
cout<<"\nInformation was found:\n\n";
while (MayWeWork!=-1)
{strcpy(path1,p); *
kkk=FindText(strcat(path1,fileinfo->name),Ssearch);
if (kkk==1)
{
* * * *cout<<"In file "<<fileinfo->name<<"\n";
}
MayWeWork=_findnext(done, fileinfo);
}
delete fileinfo;
cout<<"\n\n";
}
|
Neo5443 |
08-07-2003 00:21 208544 |
где скачать С++
|
Время: 03:04.
© OSzone.net 2001-