用户输入一个浮点数,不能用scanf函数,必须用getchar函数把用户输入的浮点数字符转换成浮点数数据,输出用户输入的浮点数+2.4以后的结果
亲测可用,麻烦采纳一下哟,谢谢❤
#include <stdio.h>
#include <math.h>
int main(){
char ch;
int i=1;
int ap=0;
float num;
while(1)
{
ch=getchar();
if(ch==10){
break;
}
if(ch>='0'&&ch<='9'){
if(!ap){
num*=10;
num+=(ch-'0');
}
else{
num+=(ch-'0')*pow(10,-i);
i++;
}
}
else{
if(ch=='.'){
ap=1;
}else{
printf("Error: You can just input number");
return -1;
}
}
//printf("%f\n",num);
}
printf("%f",num+2.4);
}
供参考:
#include <stdio.h>
#include <stdlib.h>
int main()
{
char s[12];
int i = 0;
double num;
while ((s[i] = getchar()) != '\n') i++;
num = atof(s);
printf("%f", num + 2.4);
return 0;
}
不用数组与函数的写法,供参考:
#include <stdio.h>
int main()
{
char ch;
int n = 0,k = 1,flg = 0;
double num = 0;
while((ch = getchar()) != '\n')
{
if (ch >='0' && ch <='9')
{
n = n * 10 + ch - '0';
if (flg) k *= 10;
}
else if (ch == '.'){
num = n;
n = 0;
flg = 1;
}
}
num += (double) n / k + 2.4;
printf("%g", num);
return 0;
}