华为机试--机器修复问题

来源:互联网 发布:淘宝第三方运营商 编辑:程序博客网 时间:2024/06/10 06:22

目前有一台机器因为故障,导致字符0显示异常为字符*,现在需要设置成绩,将字符*转成字符0;并将多余的0清除。

例如:输入,**.1**  ;对于的输出:0.1

设置思路,1.输入一串字符,先将字符*全部转换成 字符0;

                   2.将正常的数字字符串当中,整数部分多余的字符0清除

                   3.将小数部分多余的0清除。

上代码:

/*************************************************************************
    > File Name: number1.c
    > Author: Clam
    > Mail: 1223113455@qq.com
    > Created Time: 2016年06月05日 星期日 10时05分50秒
 ************************************************************************/

#include<stdio.h>
#include <string.h>
void fun(char* buff,int length);
void changeToZero(char* buff,int length);
void cleanIntZero(char* buff,int length);
void cleanPointZero(char* buff,int length);
int main()
{
 char buff[1024] = "";
 int length = 0;//代表字符串有效长度
// int pos = 0;//代表小数点的位置;
 scanf("%s",buff);
 length =(int) strlen(buff);//size_t usigned int
 changeToZero(buff,length);
 
 cleanIntZero(buff,length);
 length = strlen(buff);//length长度会发生变化
 cleanPointZero(buff,length);
 printf("%s\n",buff);
 return 0;
}
void cleanPointZero(char* buff,int length)
{
 int pos = 0 ;//小数点位置
 int num = 0 ,temp = 0;//有数字出现的位置
 int i = 0;
 for(i = 0;i < length ;i++)
 {
  if(buff[i] == '.')
  {
   pos = i;
  }
 }
 for(i = pos;i < length ;i++)
 {
  if(buff[i] > '0')
  {
   num = i;
  }
 }
 if(num == 0)
 {
  buff[pos] = '\0';
  return ;
 }
 buff[num+1] = '\0';
 return ;
}
//目前只考虑小数点中在中间的情况
void cleanIntZero(char *buff,int length)
{
 int temp = 0;
 int pos = 0;//代表小数点出现的位置;
 int i = 0;
 temp = length;
 for(i = 0;i < length ;i++)
 {
  if(buff[i] == '.')
   pos = i;
 }

 for(i = 0; i< pos-1 ;i++)//之关注一共要比较的次数
 {
  if(buff[0] > '0')//只关注第一为是否为0 不能书buff[i];
  {
   break;
  }
  else{
   fun(buff,length);  
   buff[length-1] = '\0';//这里会影响外循环
   length = strlen(buff);
  }
 } 
}
void fun(char* buff,int length)
{
 int i = 0;
 for(i = 0 ; i< length-1 ; i++)
 {
  buff[i] = buff[i+1];
 }
}
void changeToZero(char* buff,int length)
{
 int i = 0;
 for(i=0 ; i<length ; i++)
 {
  if(buff[i] == '*')
  {
   buff[i] = '0';
  }
 }
}


1 0
原创粉丝点击