P122 第14题 逆序

本文介绍了一个使用C语言编写的简单程序,该程序能够实现整数的位反转功能。通过对输入的整数进行逐位读取并重新构建,程序能够正确地输出反转后的整数。特别地,程序还考虑了当输入整数以0开头的情况。

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

#include<stdio.h>
 int Reverse(unsigned int s)
 {
  int k=0;
  if(s%10!=0)
  {
  while(s!=0)
  {
   k=k*10+s%10;
   s/=10;
  }
     printf("%d\n",k);
  }
   else if(s%10==0)
  {
    while(s%10==0)
    {
     s/=10;
           printf("0");
    }
  while(s!=0)
  {
   k=k*10+s%10;
   s/=10;
  }
     printf("%d\n",k);
  }
 return s;
 }
 int main()
 {
  unsigned int s;
  while(1)
  {
  printf("请输入一个数\n");
  scanf("%d",&s);
  Reverse(s);
  }
  return 0;
 }


1. 解思路: 将用户输入的数字进行取模运算,可以得到其个位、十位、百位等数字。然后再将这些数字按逆序输出即可。 代码实现: ``` num = int(input("请输入一个不多于5位的自然数:")) a = num // 100 # 百位数 b = num // 10 % 10 # 十位数 c = num % 10 # 个位数 print("百位数为:", a) print("十位数为:", b) print("个位数为:", c) print("逆序输出为:", str(c)+str(b)+str(a)) ``` 2. 解思路: 使用`random`模块生成两个随机整数,进行加法运算并提示用户输入答案,判断是否正确并计算用时。重复进行5次,统计正确数和用时即可。 代码实现: ``` import random import time correct_count = 0 # 正确数 start_time = time.time() # 开始时间 for i in range(5): a = random.randint(1, 100) b = random.randint(1, 100) result = a + b print(f"第{i+1}:{a} + {b} = ", end="") user_input = int(input()) if user_input == result: print("恭喜你,答对了!") correct_count += 1 else: print("很遗憾,答错了!") end_time = time.time() # 结束时间 time_used = round(end_time - start_time, 2) # 用时 print(f"你总共答对了{correct_count}道,用时{time_used}秒。") ``` 3. 解思路: 使用循环计算每月还款后剩余的贷款金额,当剩余金额小于每月还款额时,即表示还清了贷款。需要注意的是,计算过程中需要将月利率转化为实际利率,并进行四舍五入。 代码实现: ``` d = 30000 # 贷款金额 p = 6000 # 每月还款额 r = 0.01 # 月利率 month_count = 0 # 还款月数 while d > 0: interest = d * r # 月利息 d = d + interest - p # 剩余贷款金额 month_count += 1 month_count = round(month_count - 0.1) # 取小数点后一位,对第2位按四舍五入处理 print(f"需要{month_count}个月才能还清贷款。") ``` 4. 解思路: 遍历英语单词的每个字母,将其转化为ASCII码表示的数字,再将其加上4,最后转化为对应的字符即可。 代码实现: ``` word = input("请输入一个英文单词:") cipher = "" for char in word: ascii_code = ord(char) # 获取ASCII码 new_ascii_code = ascii_code + 4 # 加上4 new_char = chr(new_ascii_code) # 转化为对应的字符 cipher += new_char # 添加到密码字符串中 print(f"{word}的密码为:{cipher}") ```
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值