Я новичок в программировании и только начал программировать на C. Однако я получил странный ответ, когда попробовал этот простой фрагмент кода.
char str[1000], ch;
int i, frequency;
printf(" Enter a string: ");
gets(str);
printf(" Enter the character you want to find the frequency of: ");
scanf(" %c", &ch);
for (i=0; str[i]!='\0'; i++){
if ( ch == str[i]){
++frequency;
}
}
printf(" The frequency of %c is %d", ch, frequency);
return 0;
Я получил такой ответ:
Enter a string: This website is awesome
Enter the character you want to find the frequency of: e
The frequency of e is 12
Есть ли проблема с моим компилятором? Я пробовал этот фрагмент кода из онлайн-источника, так что он должен работать, верно? Так должно быть 4, верно?
Вы должны вставить сюда код. Не ссылки и уж точно не картинки или ссылки на картинки.
Скопируйте и вставьте код и сообщение об ошибке в виде текста вместо создания снимков экрана. Таким образом люди смогут запустить код и найти сообщение об ошибке в Интернете.
'фрагмент кода из онлайн-источника, так что он должен работать, верно?' РЖУ НЕ МОГУ! Нет. Все виды strage-кода публикуются в Интернете, некоторые из них хороши.
Вероятно, станет лучше, если вы инициализируете frequency перед его использованием.
Нет .... кодируйте как текст! Не ссылки, не картинки .. Текст!
Код, который я получаю от других людей, я не слишком доверяю. Они могли ошибиться. Код, который я написал сам, не слишком доверяю. По своему опыту знаю, что делаю ошибки.





Вы никогда не инициализировали frequency. С чего он начинается, прежде чем вы начнете добавлять к нему. Ответ: никто не знает, но похоже, что в вашем примере это был 8.
Поскольку вы никогда не устанавливали его, это то, для чего память использовалась в последний раз. Вы действительно должны установить его на 0, прежде чем использовать значение.
О, понял. Нашел свою ошибку. Спасибо! Цени это очень
@Ray Если это решило вашу проблему, примите этот ответ. Вы можете сделать это, щелкнув галочку под кнопками голосования, чтобы она стала зеленой. (Обычно голосование за ответ - это способ сказать «спасибо» в Stack Overflow, но у вас недостаточно очков репутации для этого.)
Ох, спасибо за руководство. Я здесь новенький, но хотел бы поучиться у вас, друзья!
@Ray Если у вас есть другой вопрос, не стесняйтесь оставлять комментарий к этому ответу со ссылкой на него. Это необычная процедура, но я хотел бы помочь вам привыкнуть к сайту (это невероятный ресурс, и вам нужно знать, как его использовать, если вы планируете заняться разработкой программного обеспечения в качестве работы) .
пожалуйста, наберите код