鱼C论坛

 找回密码
 立即注册
查看: 3648|回复: 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)题目要求的是找一个正整数的第几位数,并把这个位的数数出来
小甲鱼最新课程 -> https://ilovefishc.com
回复

使用道具 举报

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

  2. size_t Take(size_t num, size_t index)
  3. {
  4.         while(index--)
  5.                 num /= 10;
  6.         return num % 10;
  7. }

  8. int main(void)
  9. {
  10.         printf("%lu\n", Take(123456, 0));
  11.         printf("%lu\n", Take(123456, 2));
  12.         printf("%lu\n", Take(123456, 3));
  13.         printf("%lu\n", Take(123456, 5));
  14.         return 0;
  15. }
复制代码
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

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

code ver 0.0.1

本帖最后由 bin554385863 于 2019-10-29 10:38 编辑
  1. #include <stdio.h>
  2. #include <malloc.h>
  3. typedef struct
  4. {
  5.         int date;
  6.         size_t index;
  7. } Date_index;
  8. void fun(int num, size_t _index, Date_index *ptr)
  9. {
  10.         int tmp = 0;
  11.         ptr->index = _index;
  12.         while (_index--)
  13.         {
  14.                 tmp = num % 10;
  15.                 num /= 10;
  16.         }
  17.         ptr->date = tmp;
  18. }
  19. int main(int argc, char const *argv[])
  20. {
  21.         int num = 123696;
  22.         Date_index *a = (Date_index*)malloc(sizeof(Date_index));
  23.         for (size_t i = 6; i > 0; i--)
  24.         {
  25.                 fun(num, i, a);
  26.                 printf("数字{%d}的第[%d]为是%d\n", num, a->index, a->date);
  27.         }
  28.         free(a);
  29.         return 0;
  30. }

复制代码

------------------------------------------------------------------------------------------------------
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字打错了
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

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

注意:(1)数字的位次顺序从右到左,且从0开始
小甲鱼最新课程 -> https://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开始。

  1. #include <stdio.h>
  2. #include <malloc.h>
  3. typedef struct
  4. {
  5.         int date;
  6.         size_t index;
  7. } Date_index;
  8. void fun(int num, size_t _index, Date_index *ptr)
  9. {
  10.         int tmp = 0;
  11.         ptr->index = _index;
  12.         while (_index--)
  13.         {
  14.                 tmp = 0;
  15.                 tmp = num % 10;
  16.                 num /= 10;
  17.         }
  18.         ptr->date = tmp;
  19. }
  20. int main(int argc, char const *argv[])
  21. {
  22.         int num = 123696;
  23.         Date_index *a = (Date_index*)malloc(sizeof(Date_index));
  24.         for (size_t i = 0; a->date != 1; i++)
  25.         {
  26.                 fun(num, i, a);
  27.                 printf("数字{%d}的第[%d]位是%d\n", num, a->index, a->date);
  28.         }
  29.         free(a);
  30.         return 0;
  31. }
复制代码

---------------------------------------------------------------------------------------------
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>
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2019-10-28 22:10:29 | 显示全部楼层
数字{123696}的第[0]是0
小甲鱼最新课程 -> https://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



  1. #include <stdio.h>
  2. #include <malloc.h>
  3. typedef struct
  4. {
  5.         int date;
  6.         size_t index;
  7. } Date_index;
  8. void fun(int num, size_t _index, Date_index *ptr)
  9. {
  10.         int tmp = 0;
  11.         ptr->index = _index;
  12.         while (1 + _index--)
  13.         {
  14.                 tmp = num % 10;
  15.                 num /= 10;
  16.         }
  17.         ptr->date = tmp;
  18. }
  19. int main(int argc, char const *argv[])
  20. {
  21.         int num = 123696;
  22.         Date_index *a = (Date_index *)malloc(sizeof(Date_index));
  23.         for (size_t i = 0; a->date != 1; i++)
  24.         {
  25.                 fun(num, i, a);
  26.                 printf("数字{%d}的第[%d]位是%d\n", num, a->index, a->date);
  27.         }
  28.         free(a);
  29.         return 0;
  30. }
复制代码

--------------------------------------------------
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>
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

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

本版积分规则

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

GMT+8, 2025-7-6 09:12

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

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