Страница 1 из 1

Помогите переделать программку

Добавлено: 25 апр 2009, 21:32
hen
Текст задачи такой:
' Составьте программу для нахождения всех номеров счастливых билетов. Примечание: Номера автобусных билетов представляют собой шестизначное число. Счастливым считается тот билет, у которого сумма первых трёх цифр равна сумме последних трёх цифр. Например, билет 627294 считается счастливым, так как 6+2+7=2+9+4=15. '

У меня есть код этой программы на паскале помогите плиз переделать на c++

Код: Выделить всё

Program zad5;
uses crt;
var
   [color="#ff0000"]a:array [1..6] of 0..9; // как вот это 'of 0..9' записать на си++??[/color]
   s:string;
   error,i:integer;
begin
clrscr;
Writeln('Vvedite nomer avtobusnogo bileta:');
read (s);
for i:=1 to 6 do
  [color="Red"]val(s[i], a[i], error);  // И вот это место как в С++ будет??[/color]
if a[1]+a[2]+a[3]=a[4]+a[5]+a[6] then
   writeln('Happy bilet!')
   else
   write('Now Happy bilet!');
readkey;
end.

Re: Помогите переделать программку

Добавлено: 28 апр 2009, 14:39
Rycharg
Приветствую.
a:array [1..6] of 0..9; // как вот это 'of 0..9' записать на си++??
val(s, a, error); // И вот это место как в С++ будет??

Никак.
В С++ можно пойти другим путём.
Читаем номер билета в long No(при желании можно проверить, чтобы No было <= 999999).
А дальше так:

Код: Выделить всё

int rez = 0;
for(int i = 0; i < 3; ++i){
   rez += No % 10;
   No /= 10;
}
for(int i = 0; i < 3; ++i){
   rez -= No % 10;
   No /= 10;
}
Если rez остался нулевым, то билет "счастливый".

Re: Помогите переделать программку

Добавлено: 11 май 2009, 23:32
Хыиуду
А можно перевести число в строку, сложить три первые символа (как числа типа char) и вычесть из них сумму трех последних. Если 0 - билет счастливый.