Аналогово-цифровой преобразователь работает на частоте дискретизации 256 Гц. Укажите максимальную частоту, которая гарантированно будет представлена в оцифрованном сигнале. Введите число в Гц:
Значение переменной i не задано, поэтому выведет что - то произвольное, Почему while (a<N) ? А если первая цифра слева в числе = 1? while (a<N) нужно заменить на while (0<N) Убрать строку a=N%10; перед while После строки min=10; добавить строку i=0;
после изменений будет примерно так:
#include<stdio.h> #include<conio.h>
main() { int N,a, min, i, imin; scanf("%d", &N); min=10; i=0; while (0<N) { i++; a=N%10; N=N/10; if (a<min) { min=a; imin=i; } } printf ("%d", imin); getch(); return 0; }
Вот оттестированный мой вариант программы. Тестировал на числах от 1 до 6. Писать начал чуть раньше Антагониста, но он оказался шустрее :))
//PascalABC //NaaMan //Программа расчитана ТОЛЬКО на факториалы //Проверки ошибочного ввода НЕТ var n, result, i : real; begin write('Введите факториал > '); readln(n); if (n = 1) then result := 1 else begin i := 2; while n <> 1 do begin n := n / i; result := i; i := i + 1; end; end; writeln('Число ', result); end.
Почему while (a<N) ? А если первая цифра слева в числе = 1?
while (a<N) нужно заменить на while (0<N)
Убрать строку a=N%10; перед while
После строки min=10; добавить строку i=0;
после изменений будет примерно так:
#include<stdio.h>
#include<conio.h>
main() {
int N,a, min, i, imin;
scanf("%d", &N);
min=10; i=0;
while (0<N)
{ i++;
a=N%10;
N=N/10;
if (a<min)
{ min=a;
imin=i; }
}
printf ("%d", imin);
getch();
return 0;
}
//PascalABC
//NaaMan
//Программа расчитана ТОЛЬКО на факториалы
//Проверки ошибочного ввода НЕТ
var n, result, i : real;
begin
write('Введите факториал > ');
readln(n);
if (n = 1) then
result := 1
else begin
i := 2;
while n <> 1 do begin
n := n / i;
result := i;
i := i + 1;
end;
end;
writeln('Число ', result);
end.