求一个输入数的水分子个数(单位:L),要求可以判断输入的数是否为数字
代码如
#include<stdio.h>
#include<stdlib.h> //exit函数的头文件
#define mol 3.34e23 //(百度可得)科学记数法
int main()
{
float a;
printf("请输入一个数:");
//判断输入
while(1)
{
int m =scanf("%f",&a);
//判断输入是否是字符
if(m!=1)
{
printf("请再次输入一个数:");
while(getchar()!='\n');
continue;
}
//判断输入数字后面是否含有字符
if(getchar()!='\n')
{
printf("输入数字韩有非法字符,请重新输入:\n");
while(getchar()!='\n');
continue;
}
break;
}
if(a<0)
{
printf("输入错误!程序退出。。。\n");
exit(0);
}
double sum =a*mol;
//科学记数法
printf("%f的水中含有%.5e个水分子\n",a,sum);
//普通的
printf("%f的水中含有%lf个水分子\n",a,sum);
}