慕课C语言第八周 第5题

博客围绕C语言编程问题展开,给出四位反序数题目,即一个四位数N的9倍是其反序数,需编程计算N的值,并规定输入输出格式、时间和内存限制。同时对之前编程错误进行分析,如代码位置和参数设置问题。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

第八周

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 ;
}
  1. 你之前的错误是把45行的 y=9*N; 写到了循环里面。有错误时自己耐下心用手将程序完完整整算一遍,大多很容易就会发现自己的错误
  2. 第43行的 int y 最好不要写在括号里使它成为这个函数的一个参数,因为这个量跟你函数的功能没有太大关系,而且这两个函数的功能一样,应尽可能保持两个函数的参数一样,这样会使函数更清楚

 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值