写一个函数int diff(int n, int m, int k) , 将整数n中出现的数字m替换为数字k,返回得到的新的数;
在main函数中,输入n,m,k的值,然后调用diff函数,最后输出替换后的数,
注意:未按要求创建diff函数,不得分
注意
:要能够处理n为正数、负数
、0 的情况。
输入格式:
输入三个整数,数据之间用空格分隔,第2、3个数在0~9之间
输出格式:
输出替换后的整数
输入样例1:
12737 7 8
输出样例1:
12838
输入样例2:
-12111 1 3
输出样例2:
-32333
代码段:
# include<stdio.h>
# include<math.h>
int main()
{
int diff(int n,int m,int k);
int a,b,c,n;
scanf("%d %d %d",&a,&b,&c);
if(a<0)
{
n=-diff(a,b,c);
}
else if(a>0)
{
n=diff(a,b,c);
}
else
n=0;
printf("%d",n);
return 0;
}
int diff(int n,int m,int k)
{
if(n<0)
n=-n;
int i=1,o=1,d,sum=0,n1=n,p=0;
do
{
n1=n1/10;
if(fabs(n1)<10)
{
o++;
break;
}
o++;
}
while(o!=0);
do
{
d=n%10;
n=n/10;
if(d==m)
{
d=k;
}
sum=sum+i*d;
i*=10;
p++;
}
while(p<o);
return(sum);
}
虽然没有完全正确 但一般情况还是正确的 不知道pta上还有一个测试点是什么.....
也算给大家一个思路