C语言课后习题训练记录Day29

1.练习项目:

编写一个函数,实现左右循环移位。函数名为move,调用方法为move(value, n)。其中value为需要循环位移的数,n为位移的位数。n<0表示为左移;n>0表示为右移。例如,n=4表示右移4位;n=-3表示左移3位。

请务必注意本题中的整数是32位无符号整数,输入和输出时可以使用%u进行处理。

2.选择题集

在Dotcpp编程中选择题集《谭浩强C语言课后习题》,选择题号1775并开始练习。

3.开始练习

(1)源码:

#include"stdio.h"

int main()

{

unsigned value,n;

unsigned move(unsigned,unsigned);

scanf("%u %u",&value,&n);

move(value,n);

return 0;

}

unsigned move(unsigned v,unsigned n)

{

unsigned a,b,c;

a=v>>n;

b=v<<(32-n);

c=a|b;

printf("%u",c);

return 0;

}

(2)检验结果

对此代码进行检验,检验后无报错,提交此代码,判题结果为正确100分。

(3)练习心得:由于无符号类型转换,在输入负数n时会转换为(32-n),且循环右移n位=循环左移(32-n)位,故对于无符号整数,其总是能循环右移,无需if语句判断n的正负;注意每段代码末尾的分号是否存在,如不存在则需即使补充;输入法是否切换为英语模式;语法是否错误。

相关推荐
GreenTea2 小时前
深度解读 Anthropic 多智能体报告:更强的模型 ≠ 更好的协调
前端·后端·算法
2603_965148113 小时前
如何解析JSON数据?API返回的商品信息处理教程
开发语言·数据库·python·自动化·json·api
fqq33 小时前
力扣刷题前置Java语法
算法·leetcode·职场和发展
SuperByteMaster5 小时前
timer.c 介绍
c语言
知无不研5 小时前
lambda表达式的使用(3)
开发语言·c++·lambda
2501_906565126 小时前
数学之美探究
算法
oier_Asad.Chen6 小时前
【洛谷题解/AcWing题解/OI学习笔记】洛谷P2868【USACO07DEC】Sightseeing Cows G(01分数规划求最大比率)
算法·图论·spfa·二分·负环
cfm_29146 小时前
SpringAI + Ollama 本地大模型
java·开发语言·人工智能·语言模型
C++ 老炮儿的技术栈7 小时前
基于Qt实现轻量化本地音乐播放器
开发语言·c++·qt·c·播放器·音乐
qq_448011167 小时前
C语言中的柔性数组
c语言·开发语言·柔性数组