C语言 输入四位正整数N

输入四位正整数N,若它的 K(1<K<20)倍恰好是其反序数(例如:1234的反序数是4321),输出所有满足条件的K和反序数,若不存在,则输出:No output↵

输入: 四位正整数N :
输出:K和反序数 如输入1089 输出9 9801
这个哪不对了?

#include <stdio.h>
#include <stdlib.h>
int main( )
{
int forder(int n);
int n,i,temp,f; f=1;
scanf("%d",&n);
while(n<1000 || n>9999) scanf("%d",&n);
temp=forder(n);
for(i=2;i<20;i++)
{ if (n*i==temp)
printf("%d %d\n",i,temp),f=0;
}
if(f) printf("No output");
} int forder(int n){ int n1,n2,n3,n4; n4=n/1000;
n3=n/100-n4*10;
n2=n/10-n4*100-n3*10;
n1=n-n4*1000-n3*100-n2*10;
return n1*1000+n2*100+n3*10+n4;

system("PAUSE");
return 0;}

程序如下:
#include <stdio.h>
int main()
{
int m=0,n,k,a,i;
scanf("%d",&n);
a=n;
for(i=0;i<4;i++)//这里求反序
{
m*=10;
m+=a%10;
a/=10;
}
k=m/n; //取倍数
if(m%n==0) //判断是否是整数倍
printf("%d %d\n",k,m);
else
printf("No output\n");
return 0;
}追问

是在DEV-C++上运行吗?

追答

都可以的啦,程序又没有声明特殊地方啦

温馨提示:答案为网友推荐,仅供参考
第1个回答  2013-03-21
#include<iostream>
using namespace std;
int fx(int a) //fx为输出a的反序的子函数
{
int x=0,b;
while(a)
{
x=a%10+x*10;
a=a/10;
}
return x;
}
int main()
{

int a,k;
cout<<"请输入一个四位整数:\n";
cin>>a;

for( k=2;k<20;k++)
if((a*k)==(fx(a)))
{
cout<<k<<" "<<(fx(a));
break;
}

if(k>9)
cout<<"No output"<<endl;

system("pause");

return 0;
}
第2个回答  2013-03-21
k是什么啊?反序数第一位?