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

Ответить
hen
Сообщения: 1
Зарегистрирован: 12 апр 2009, 00:23

Текст задачи такой:
' Составьте программу для нахождения всех номеров счастливых билетов. Примечание: Номера автобусных билетов представляют собой шестизначное число. Счастливым считается тот билет, у которого сумма первых трёх цифр равна сумме последних трёх цифр. Например, билет 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.
Rycharg
Сообщения: 28
Зарегистрирован: 15 апр 2009, 14:23
Откуда: SPb

Приветствую.
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 остался нулевым, то билет "счастливый".
Хыиуду
Сообщения: 2442
Зарегистрирован: 06 мар 2005, 21:03
Откуда: Москва
Контактная информация:

А можно перевести число в строку, сложить три первые символа (как числа типа char) и вычесть из них сумму трех последних. Если 0 - билет счастливый.
Искусство программирования - заставить компьютер делать все то, что вам делать лень.
Для "спасибо" есть кнопка "Спасибо" в виде звездочки внизу под ником автора поста.
Ответить