我编写了一个关于输入一个字符串,但在输入字母和 ' . '以外的符号时,会告诉用户'error!', 假如输入的全部都是数字以及符号' . '时, 那么就会将该字符串转换为浮点数, 以下是我的代码:
#include<stdio.h>
#include<stdlib.h>
int main()
{
int i;
int n=1;
char c[100];
printf("input: ");
scanf("%s", &c);
while(n != 0)
{
n=0;
for(i=0;i<100;i++)
{
if((c[i]<'0' || c[i]>'9') && c[i] != '.' && c[i] != '\0')
{
n++;
}
}
if(n != 0)
{
printf("error!\n");
printf("input: ");
for(i=0;i<100;i++)
{
c[i]='\0';
}
scanf("%s", &c);
}
num = atof(c);
printf("Your number is : %f", num);
}
开始编译的时候
input: qwert // 第一次开始
error!
input: 12345
Your number is: 12345.000000
input: 12345 // 第二次开始
error!
input: 12345
Your number is: 12345.000000
input: 1wqwr21 // 第三次开始
error!
input: eqwe21
error!
input: 12345
Your number is: 12345.000000
它的运行结果第一次无论我输入什么总会报错,我曾想过调整while括号里面n的判断条件, 可是这样会出现输入字母还会显示在输入字母的情况下就显示Your number is: 0.000000
请问, 如何将这段代码变成第一次运行结果输入数字不会报错的情况呢