【发布时间】:2015-03-05 07:23:23
【问题描述】:
此程序的目的是计算字母数字输入中的数字。但是,我使用循环不执行程序,除非输入是字母数字。
这是代码:
#include <stdio.h>
#include <stdlib.h>
#include <math.h>
#include <ctype.h>
int main(){
int input,isanum,digitcount;
printf("\nEnter a number: ");
scanf("%d",&input);
isanum=isalnum(input);
while(isanum==0){
printf("\nIncorrect input. Try again: ");
scanf("%d",&input);
isanum=isalnum(input);
}
digitcount=0;
while(input!=0){
input=input/10;
digitcount++;
}
printf("\nNumber of digits = %d",digitcount);
return 0;
}
问题在于循环。它一直无限循环,忽略 scanf 语句,我不知道为什么。我在这里错误地使用了isalnum() 吗?
【问题讨论】:
-
查看this 线程。
-
您可能想用 scanf 读取字符,而不是整数。否则,调用 isalnum 没有任何意义。
标签: c while-loop infinite-loop