Пользователь вводит целое число. Надо вывести на экран сколько в этом числе цифр и положительное оно или отрицательное. Например, "это однозначное положительное число".
Пусть достаточно будет определить, является ли число однозначным, двухначным или трехзначным и более.
var n: integer; begin write('n = '); readln(n); if n = 0 then write('Zero') else begin if n > 0 then write('Positive ') else write('Negative '); if abs(n) then write('single') else if (abs(n) >= 10) and (abs(n) ) then write('two-digit') else write('three-digit or more'); end; writeln; end.
Примеры выполнения программы:
n = -102 Negative three-digit or more
n = 45 Positive two-digit
Комментарии
Можно проще
Найдет количество цифр в числе. А не как у вас
Такой вариант программы не
Такой вариант программы не эффективен с точки зрения быстродействия. Если срабатывает второе условие, то нет смысла проверять третье и четвертое. А у вас оно будет проверяться. Поэтому правильнее использовать конструкцию if-else.
Можно сделать иначе.
Так как мы имеем четко поставленную задачу, то ее можно решить четко направленным кодом:
Проще и надежнее...
Var x:integer; s:string;
Begin
writeln('Enter your number : '); readln(x);
begin
If x = 0 then writeln('Zero')
else
begin
If x else writeln('Positive');
end
end;
str(x,s);
writeln('Length : ',length(s) );
readln;
End.