第八周
5
四位反序数(4分)
题目内容:
反序数就是将整数的数字倒过来形成的整数。例如,1234的反序数是4321。设N是一个四位数,它的9倍恰好是其反序数,编程计算并输出N的值。
输入格式: 无
输出格式:"%d\n"
注意:为避免出现格式错误,请直接拷贝粘贴上面给出的输入、输出提示信息和格式控制字符串!
时间限制:500ms内存限制:32000kb
答:
#include <stdio.h>
void Cun_a(int a[4], int i, int N, int x);
void Cun_b(int b[4], int i, int N, int y, int x);
int main()
{
int a[4], i=0, N, b[4], x=0, y=0;
for (N=1000; N <= 1111; N++)
{
Cun_a(a, i, N, x);
Cun_b(b, i, N, y, x);
for (i=0; i <= 3; i++)
{
if (a[i] == b[3-i])
{
continue;
}
else
{
break;
}
}
if (i == 4)
{
printf("%d\n",N);
}
}
return 0;
}
//将N的每位数分别存储在数组a中
void Cun_a(int a[4], int i, int N, int x)
{
for (i=0; i <= 3; i++)
{
x=N%10;
N/=10;
a[i]=x;
}
return ;
}
//把9N的每一位分别存储在数组b中
void Cun_b(int b[4], int i, int N, int y, int x)
{
y=9*N;
for (i=0; i <= 3; i++)
{
x=y%10;
y/=10;
b[i]=x;
}
return ;
}
- 你之前的错误是把45行的 y=9*N; 写到了循环里面。有错误时自己耐下心用手将程序完完整整算一遍,大多很容易就会发现自己的错误
- 第43行的 int y 最好不要写在括号里使它成为这个函数的一个参数,因为这个量跟你函数的功能没有太大关系,而且这两个函数的功能一样,应尽可能保持两个函数的参数一样,这样会使函数更清楚