Вопрос задан 27.02.2019 в 05:09. Предмет Информатика. Спрашивает Ершова Мария.

Программирование цикл вайл язык СВопрос №737412 (тип: C)Дано натуральное число N (N<=109).

Определить порядковый номер его минимальной цифры, считая от конца числа (если таких цифр несколько, то вывести номер первой встретившейся)вот программа , вроде все правильно но выдает 0%,где ошибка?#include<stdio.h>main(){ int N,a, min, i, imin; scanf("%d", &N); min=10;a=N%10; while (a<N){ i++; a=N%10; N=N/10; if (a<min) { min=a; imin=i; }}printf ("%d", imin); }
0 0
Перейти к ответам

Ответы на вопрос

Внимание! Ответы на вопросы дают живые люди. Они могут содержать ошибочную информацию, заблуждения, а также ответы могут быть сгенерированы нейросетями. Будьте внимательны. Если вы уверены, что ответ неверный, нажмите кнопку "Пожаловаться" под ответом.
Отвечает Захарова Світланка.
Значение переменной 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;
}

0 0
Отвечает нейросеть ChatGpt. Будьте внимательны, ответы нейросети могут содержать ошибочные или выдуманные данные.

Программа, которую вы предоставили, имеет несколько проблем, которые могут привести к неверным результатам:

1. Не инициализированы начальные значения переменных. Например, переменная `i` не была инициализирована перед использованием в цикле. 2. Цикл `while` может некорректно работать из-за условия `while (a < N)`, которое сравнивает последнюю цифру числа с самим числом `N`. Это условие может привести к непредсказуемому поведению программы. 3. Необходимо учесть случай, когда минимальная цифра равна 0. В текущей реализации программы это может привести к неправильному результату, так как минимальное значение `min` установлено на 10.

Вот исправленная версия вашей программы на языке C, которая должна корректно находить порядковый номер минимальной цифры числа, считая от конца:

```c #include

int main() { int N, a, min = 9, i = 0, imin = -1; // Инициализация переменных и установка min на максимально возможное значение

scanf("%d", &N);

while (N > 0) { a = N % 10; if (a <= min) { min = a; imin = i; } N = N / 10; i++; }

printf("%d", imin);

return 0; } ```

Этот код должен правильно определять порядковый номер первой минимальной цифры числа, начиная с конца.

0 0

Топ вопросов за вчера в категории Информатика

Последние заданные вопросы в категории Информатика

Задать вопрос