考虑的太多,写的比较复杂
#include <stdio.h>
#include <string.h>
#include <stdlib.h>
void Tempratures(const double huashi);
int main(void)
{
double huashi;
char a[10];
unsigned int i,j,count;
for (i = 1; ; i++)//for循环开始
{
memset(a, 0, sizeof(a));
printf("请输入一个华氏温度\n");
scanf("%s", a);
huashi = atof(a);
count = 0;
/* 判断是否为一个正常的数字 */
for (j = 0; j < strlen(a); j++)
{
if (a[j] == '.')
{
/* 多个小数点 */
count++;
}
/* 数字和字母混合 */
if (((a[j] < '0') &&(a[j] != '.') || (a[j] > '9')) || (a[0] == '.') || (a[strlen(a)-1] == '.') || (count >1))
{
printf("输入非数字,退出\n");
return 0;
}
}
Tempratures(huashi);
}
return 0;
}
void Tempratures(const double huashi)
{
double sheshi;
sheshi = huashi*9/5 + 32;
printf("摄氏温度为%.2lf\n", sheshi);
printf("绝对温度为%.2lf\n", sheshi+273.16);
}
#include <stdio.h>
#include <string.h>
#include <stdlib.h>
void Tempratures(const double huashi);
int main(void)
{
double huashi;
char a[10];
unsigned int i,j,count;
for (i = 1; ; i++)//for循环开始
{
memset(a, 0, sizeof(a));
printf("请输入一个华氏温度\n");
scanf("%s", a);
huashi = atof(a);
count = 0;
/* 判断是否为一个正常的数字 */
for (j = 0; j < strlen(a); j++)
{
if (a[j] == '.')
{
/* 多个小数点 */
count++;
}
/* 数字和字母混合 */
if (((a[j] < '0') &&(a[j] != '.') || (a[j] > '9')) || (a[0] == '.') || (a[strlen(a)-1] == '.') || (count >1))
{
printf("输入非数字,退出\n");
return 0;
}
}
Tempratures(huashi);
}
return 0;
}
void Tempratures(const double huashi)
{
double sheshi;
sheshi = huashi*9/5 + 32;
printf("摄氏温度为%.2lf\n", sheshi);
printf("绝对温度为%.2lf\n", sheshi+273.16);
}
[此贴子已经被作者于2016-3-18 16:01编辑过]