由键盘输入一个无符号长整数x,而后输入一个正整数k,求出将x的倒数第k位(从右往左数第k位)的数字删除后形成的结果数newx并输到屏幕上。例如,当输入的x为12345678,k为3,输出的结果newx应为1234578;当输入的x为12345,k为6时,输出的结果newx应为12345(当k值大于x的位数时,结果为x)
以下是我的解答,不过运行结果是错的,求大神指点迷津,感激不尽
#include<iostream.h>
void main()
{
int newx=0,k;
unsigned long x;
cout<<"unsigned long x=";
cin>>x;
cout<<"int k=";
cin>>k;
while(x!=0)
{
int a=x%10,b=1,i=1; //i我代表的是求余次数//
if(i<k)
{
newx=newx+a*b;
b=10*b;
x/=10;
i++;
}
else if(i=k)
{x/=10;
newx=newx+a*b;i++;}
else
b=10*b; x/=10;
newx=newx+a*b;
}
cout<<"newx is "<<newx<<endl;
}
恩,你好。改进了,不过运行结果还是错的 TT