鱼C论坛

 找回密码
 立即注册
查看: 2953|回复: 6

c语言大一某测试题 求大佬指点

[复制链接]
发表于 2019-10-28 12:58:20 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能^_^

您需要 登录 才可以下载或查看,没有账号?立即注册

x
编写一个函数Take(),该函数返回正整数n的第k位数。
例如:如果n为543210,则调用函数Take(n,0)返回数字0,调用函数Take(n,3)则返回数字3。
注意:(1)数字的位次顺序从右到左,且从0开始。
     (2)题目要求的是找一个正整数的第几位数,并把这个位的数数出来
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2019-10-28 13:21:55 | 显示全部楼层
#include <stdio.h>

size_t Take(size_t num, size_t index)
{
        while(index--)
                num /= 10;
        return num % 10;
}

int main(void)
{
        printf("%lu\n", Take(123456, 0));
        printf("%lu\n", Take(123456, 2));
        printf("%lu\n", Take(123456, 3));
        printf("%lu\n", Take(123456, 5));
        return 0;
}
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2019-10-28 18:05:08 | 显示全部楼层

code ver 0.0.1

本帖最后由 bin554385863 于 2019-10-29 10:38 编辑
#include <stdio.h>
#include <malloc.h>
typedef struct
{
        int date;
        size_t index;
} Date_index;
void fun(int num, size_t _index, Date_index *ptr)
{
        int tmp = 0;
        ptr->index = _index;
        while (_index--)
        {
                tmp = num % 10;
                num /= 10;
        }
        ptr->date = tmp;
}
int main(int argc, char const *argv[])
{
        int num = 123696;
        Date_index *a = (Date_index*)malloc(sizeof(Date_index));
        for (size_t i = 6; i > 0; i--)
        {
                fun(num, i, a);
                printf("数字{%d}的第[%d]为是%d\n", num, a->index, a->date);
        }
        free(a);
        return 0;
}
------------------------------------------------------------------------------------------------------
E:\Users\86184\Documents\Code>cmd /C "c:\Users\86184\.vscode\extensions\ms-vscode.cpptools-0.26.0\debugAdapters\bin\WindowsDebugLauncher.exe --stdin=Microsoft-MIEngine-In-ko3k1myj.ina --stdout=Microsoft-MIEngine-Out-3gip4dkr.isa --stderr=Microsoft-MIEngine-Error-fijnybi3.ege --pid=Microsoft-MIEngine-Pid-oyykru0o.w1o "--dbgExe=E:\My Program\MinGW\bin\gdb.exe" --interpreter=mi "
数字{123696}的第[6]为是1
数字{123696}的第[5]为是2
数字{123696}的第[4]为是3
数字{123696}的第[3]为是6
数字{123696}的第[2]为是9
数字{123696}的第[1]为是6


E:\Users\86184\Documents\Code>


MMP字打错了
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2019-10-28 21:38:10 | 显示全部楼层
bin554385863 发表于 2019-10-28 18:05
-------------------------------------------------------------------------------------------------- ...

注意:(1)数字的位次顺序从右到左,且从0开始
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2019-10-28 21:58:50 | 显示全部楼层

code ver 0.0.2

本帖最后由 bin554385863 于 2019-10-29 10:38 编辑
人造人 发表于 2019-10-28 21:38
注意:(1)数字的位次顺序从右到左,且从0开始。

#include <stdio.h>
#include <malloc.h>
typedef struct
{
        int date;
        size_t index;
} Date_index;
void fun(int num, size_t _index, Date_index *ptr)
{
        int tmp = 0;
        ptr->index = _index;
        while (_index--)
        {
                tmp = 0;
                tmp = num % 10;
                num /= 10;
        }
        ptr->date = tmp;
}
int main(int argc, char const *argv[])
{
        int num = 123696;
        Date_index *a = (Date_index*)malloc(sizeof(Date_index));
        for (size_t i = 0; a->date != 1; i++)
        {
                fun(num, i, a);
                printf("数字{%d}的第[%d]位是%d\n", num, a->index, a->date);
        }
        free(a);
        return 0;
}
---------------------------------------------------------------------------------------------
E:\Users\86184\Documents\Code>cmd /C "c:\Users\86184\.vscode\extensions\ms-vscode.cpptools-0.26.0\debugAdapters\bin\WindowsDebugLauncher.exe --stdin=Microsoft-MIEngine-In-2g23kszp.xwg --stdout=Microsoft-MIEngine-Out-zp5nnwtx.0lm --stderr=Microsoft-MIEngine-Error-igzwk35o.v01 --pid=Microsoft-MIEngine-Pid-bz3tceqy.x3l "--dbgExe=E:\My Program\MinGW\bin\gdb.exe" --interpreter=mi "
数字{123696}的第[0]位是0
数字{123696}的第[1]位是6
数字{123696}的第[2]位是9
数字{123696}的第[3]位是6
数字{123696}的第[4]位是3
数字{123696}的第[5]位是2
数字{123696}的第[6]位是1


E:\Users\86184\Documents\Code>
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2019-10-28 22:10:29 | 显示全部楼层
数字{123696}的第[0]是0
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2019-10-28 22:24:30 | 显示全部楼层

code ver 1.0.0

本帖最后由 bin554385863 于 2019-10-29 10:39 编辑
人造人 发表于 2019-10-28 22:10
数字{123696}的第[0]位是0


#include <stdio.h>
#include <malloc.h>
typedef struct
{
        int date;
        size_t index;
} Date_index;
void fun(int num, size_t _index, Date_index *ptr)
{
        int tmp = 0;
        ptr->index = _index;
        while (1 + _index--)
        {
                tmp = num % 10;
                num /= 10;
        }
        ptr->date = tmp;
}
int main(int argc, char const *argv[])
{
        int num = 123696;
        Date_index *a = (Date_index *)malloc(sizeof(Date_index));
        for (size_t i = 0; a->date != 1; i++)
        {
                fun(num, i, a);
                printf("数字{%d}的第[%d]位是%d\n", num, a->index, a->date);
        }
        free(a);
        return 0;
}
--------------------------------------------------
E:\Users\86184\Documents\Code>cmd /C "c:\Users\86184\.vscode\extensions\ms-vscode.cpptools-0.26.0\debugAdapters\bin\WindowsDebugLauncher.exe --stdin=Microsoft-MIEngine-In-kcq1a20e.afc --stdout=Microsoft-MIEngine-Out-lykau0fh.z2i --stderr=Microsoft-MIEngine-Error-y5siqckk.dt4 --pid=Microsoft-MIEngine-Pid-zibmxyei.jbt "--dbgExe=E:\My Program\MinGW\bin\gdb.exe" --interpreter=mi "
数字{123696}的第[0]位是6
数字{123696}的第[1]位是9
数字{123696}的第[2]位是6
数字{123696}的第[3]位是3
数字{123696}的第[4]位是2
数字{123696}的第[5]位是1


E:\Users\86184\Documents\Code>
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|手机版|Archiver|鱼C工作室 ( 粤ICP备18085999号-1 | 粤公网安备 44051102000585号)

GMT+8, 2024-10-4 17:22

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表