Yinzz2 2020-11-07 17:30 采纳率: 0%
浏览 93

这个程序如何正确运行?(我是想要该函数返回正整数n的第k位数)

#include<stdio.h>
unsigned int Take(int n, int k)
{
    int i;
    unsigned int a[8] = { 1,10,100,1000,10000,100000,1000000,10000000 };
    for (i = 1; i < 8; i++)
    {
        if (n <(a[i] * 10))
        {
            break;
        }
    }
    if (k > i)
    {
        return 0;
    }
    i = k;
    n = n / a[i];
    n = n % 10;
    return n;
}
int main(void)
{
    int n, k;//k指的是位数
    printf("输出数字与你想得到位数\n");
    scanf_s(" %d, %d", &n, &k);
    Take(n, k);
    printf("%d\n", n);
    return 0;
}

 

  • 写回答

1条回答 默认 最新

  • 芣苢的成长之路 2023-06-27 00:59
    关注

    程序设计思路如下:

    1、引入<stdio.h>头文件以使用输入输出函数。
    2、声明函数unsigned int Take(int n, int k),该函数接受两个参数:正整数n和位数k,并返回第k位的数字。
    3、在主函数int main(void)中,声明变量n和k,用于存储用户输入的数字和位数。
    4、使用printf函数向用户询问要输入的数字和位数,并使用scanf_s函数接收用户的输入。
    5、调用函数Take(n, k),将用户输入的数字n和位数k作为参数传递给函数。
    6、在函数Take中,定义整型变量i和无符号整型数组a,数组a中存储了10的幂次方,用于提取n的各位数字。
    7、使用for循环遍历数组a,找到最小的幂次方i,使得n < (a[i] * 10)。
    8、如果k大于i,则说明k超出了n的位数范围,返回0。
    9、将i的值赋给k,将n除以a[i]来去除前面的位数,然后对10取模得到第k位的数字,并将其赋给n。
    10、返回n作为函数的结果。
    11、使用printf函数打印结果n。

    
    #include<stdio.h>
    
    unsigned int Take(int n, int k)
    {
        int i;
        unsigned int a[8] = { 1, 10, 100, 1000, 10000, 100000, 1000000, 10000000 };
        for (i = 1; i < 8; i++)
        {
            if (n < (a[i] * 10))
            {
                break;
            }
        }
        if (k > i)
        {
            return 0;
        }
        i = k;
        n = n / a[i];
        n = n % 10;
        return n;
    }
    
    int main(void)
    {
        int n, k;
        printf("请输入一个数字和要提取的位数:\n");
        scanf("%d, %d", &n, &k);
        unsigned int result = Take(n, k);
        printf("第%d位的数字为:%d\n", k, result);
        return 0;
    }
    
    
    评论

报告相同问题?

悬赏问题

  • ¥20 数学建模,尽量用matlab回答,论文格式
  • ¥15 昨天挂载了一下u盘,然后拔了
  • ¥30 win from 窗口最大最小化,控件放大缩小,闪烁问题
  • ¥20 易康econgnition精度验证
  • ¥15 msix packaging tool打包问题
  • ¥28 微信小程序开发页面布局没问题,真机调试的时候页面布局就乱了
  • ¥15 python的qt5界面
  • ¥15 无线电能传输系统MATLAB仿真问题
  • ¥50 如何用脚本实现输入法的热键设置
  • ¥20 我想使用一些网络协议或者部分协议也行,主要想实现类似于traceroute的一定步长内的路由拓扑功能