假设有多个7进制表示的4位小数,请将之按照“3舍4入”的方式保留3位有效数字
[这里7进制的“3舍4入”类比于10进制的“4舍5入”,明白了吗?]
思路是把数字字符处理
学会惯用ASCII码和数字间的转换
#include<stdio.h>
#include<string.h>
int main()
{
char s1[100];
while(scanf("%s",s1)!=EOF)
{
int i,n;
n=strlen(s1);
if(s1[n-1]>='4')
{
s1[n-2]+=1;
s1[n-1]='0';
}
for(i=n-2;i>0;i--)
{
if(s1[i]=='.')
{
continue;
}
if(s1[i]>'6')
{
s1[i]='0';
if(s1[i-1]=='.')
{
s1[i-2]+=1;
continue;
}
s1[i-1]+=1;
}
}
s1[n-1]='\0';
printf("%s\n",s1);
}
return 0;
}