华为机试--机器修复问题
来源:互联网 发布:淘宝第三方运营商 编辑:程序博客网 时间: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秒
************************************************************************/
> 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;
}
#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';
}
}
}
{
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
- 华为机试--机器修复问题
- 华为机试 - 约瑟夫问题
- 华为机试---迷宫问题
- 华为机试-迷宫问题
- 华为机试地铁换乘问题
- 华为机试之背包问题小结
- 华为机试之字符串压缩问题
- 华为机试---约瑟夫环问题
- 华为机试练习---括号匹配问题
- 华为机试:星期几的问题
- 华为机试:星期几的问题
- 华为机试--地铁换乘问题
- 华为机试:和尚挑水问题
- 华为机试汽水瓶问题
- 华为机试题--排序问题
- 华为机试题-约瑟夫问题
- 华为机试——操作系统任务调度问题
- 华为机试——03操作系统任务调度问题
- Struts2的Action中常用的获得request的方法
- POJ2446 Chessboard(二分图)
- Java多线程(一)
- apache url路由配置重写
- 阻止事件的默认行为
- 华为机试--机器修复问题
- Ubuntu 16.04待机后无法接受输入
- 设计模式系列(一)单例模式
- C++第7次实验-数组素数排序
- Serializable和Parcelable
- mysql 忘记密码,如何修改
- Msql编辑数据表的默认存储引擎
- jquery判断input值不为空 val()
- 数据库之事务的隔离级别