请问一下这句 语句 是什么意思??

来源:百度知道 编辑:UC知道 时间:2024/05/26 10:43:06
我的目的是要在字符串数组里输入一个实数 然后用float类型完整输出这个实数.
(不管是 正实数还是负实数 都可以输出!
如果输入了小数 那个 . 就变为8输出了 为什么????
还有怎样 当输出负数时 才能搞到 按照要求输出来! )
#include<stdio.h>
#include<string.h>
void main()
{
float num=0;
int i,len;
char ch[20];
printf("请输入实数:\n");
gets(ch);
len=strlen(ch);
for(i=0;i<len;i++)
{
num=num*10+(ch[i]-48); // 请问这句 是 什么意思? 用来干什么的????
printf("%f\n",num); //
}
return;
}

这问题蛮有意思的,到晚上研究一下

-----------------------
把你的修改了,主要是过滤其他字符,正负数 和 小数 功能 ,不懂再问。程序如下:

/*=========================

@@ symbol==1 正数标识
@@ symbol==-1 负数标识

@@ decimal==0 整数标识
@@ decimal==1 小数标识

===========================*/

#include <stdio.h>
#include <string.h>
void main()
{
double num=0;
int inum=0; //存储整数部分
double fnum=0; //存储小数部分
int symbol=1,decimal=0;
char ch[20];
int len,i,j=1;
printf("请输入一实数!\n");
gets(ch);
len=strlen(ch);
if(ch[0]==45)
{
symbol=-1;
}
if(ch[0]==43)
{
symbol=1;
}

for(i=0;i<len;i++)
{
if(!decimal)
{
decimal= (ch[i]==46) ? (1,i++) : 0 ;

}

if(ch[i]>=48 && ch[i]<58)
{
if(!decimal) //整数部分计算
{
inum=inum*10+(ch[i]-48);
pri