从一个字符数组中读出相应的整数、实数

/*****************************************************
copyright (C), 2014-2015, Lighting Studio. Co.,     Ltd.
File name:
Author:Jerey_Jobs    Version:0.1    Date:
Description:
Funcion List:
*****************************************************/

#include <stdio.h>

int main()
{
 float k;        //定义循环变量i、辅助运算变量k、中间变量temp1,temp2和字符型数组s
 int i = 0,temp1;
 int m = 0,n = 0;
 float temp2;
 char s[1024];
 int a[1024];
 float b[1024];

 printf("Enter a string : \n");        //提示用户输入字符串
 scanf("%s",s);

    while(s[i] != '\0')
 {
  while((s[i] >= '0' && s[i] <= '9') || s[i] == '.')        //只有当遇到第一个整数时,进入循环
  {
      temp1 = 0;
      temp2 = 0.0;
      while(s[i] >= '0' && s[i] <= '9')        //当没有遇到小数点之前,把他当作整形来计算
   {
    temp1 = temp1 * 10 + s[i] - '0';
    i++;
   }
   if(s[i] == '.')        //一旦遇到小数点,就开始进行小数点之后的浮点数运算
   {
    k = 0.1;
    temp2 = temp1;
        i++;
    while(s[i] >= '0' && s[i] <= '9')        //在小数点后的数字中一直进行运算
    {
     temp2 = temp2 + (s[i] - '0') * k;
     k = k * 0.1;
     i++;
    }
    b[n++] = temp2;
   }
   else        //下一位如果不是小数点,就直接输出
   {
    a[m++] = temp1;
   }
   i++;
  }
  i++;
 }

 printf("整形数有:\n");        //按照标准格式输出
 for(i = 0;i < m;i++)
 {
  printf("%d  ",a[i]);
 }
 printf("\n");

 printf("浮点形数有:\n");
 for(i = 0;i < n;i++)
 {
  printf("%.3f  ",b[i]);
 }
 printf("\n");
    return 0;
}

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值