首页 > 其他分享 >CSAPP练习题2.11

CSAPP练习题2.11

时间:2023-04-09 23:11:51浏览次数:50  
标签:练习题 CSAPP int 反转 arr 数组 printf array 2.11

练习题2.11

 1 /*
 2 CSAPP练习题2.11,并做了一些扩展
 3 指定或者用户输入一个数组(100以内),打印反转前后的所有数组元素
 4 */
 5 #include <stdio.h>
 6 
 7 void inplace_swap(int *x, int *y);        //互换值
 8 void reverse_array(int a[], int cnt);    //数组反转
 9 void print_array(int a[], int length);    //数组打印,数组长度也需传入
10 
11 int main() {
12     //输入一个数组并打印反转前后的数组元素
13     int i, n;
14     int arr[100];        //数组长度上限位100
15     printf("请输入数组长度(100以内):\n");
16     scanf("%d", &n);
17     for (i = 0; i < n; i++) {
18         scanf("%d", &arr[i]);
19     }
20     //反转前
21     printf("反转前:\n");
22     printf("arr[]=");
23     print_array(arr, n);
24     //反转
25     reverse_array(arr, n);
26     //反转后
27     printf("反转后:\n");
28     printf("arr[]=");
29     print_array(arr, n);
30     return 0;
31 }
32 //互换元素
33 void inplace_swap(int *x, int *y) {
34     *x = *x ^ *y;
35     *y = *x ^ *y;
36     *x = *x ^ *y;
37 }
38 //数组反转
39 void reverse_array(int a[], int cnt) {
40     int first, last;
41     for (first = 0, last = cnt - 1; first < last; first++, last--) {
42         inplace_swap(&a[first], &a[last]);
43     }
44 }
45 //数组打印
46 void print_array(int a[], int length) {
47     printf("{");
48     for (int i = 0; i < length; i++) {
49         printf("%d", a[i]);
50         if (i < length - 1)
51             printf(",");
52     }
53     printf("}\n");
54 }

 

标签:练习题,CSAPP,int,反转,arr,数组,printf,array,2.11
From: https://www.cnblogs.com/leon0408/p/17301402.html

相关文章

  • java -- 练习题
    第一题1.定义一个Person类,要求有姓名和年龄,并且符合JavaBean标准,定义Student类继承Person,定义测试类,创建Student对象,要求创建Student对象的同时,指定Student对象的姓名为"张三",只能指定姓名不许指定年龄classPerson{privateStringname;privateintage;......
  • mysql 查询练习题
    1.查出至少有一个员工的部门。显示部门编号、部门名称、部门位置、部门人数。selectd.deptno,d.dname,d.loc,r.countfromdeptd,(selectdeptno,count(*)countfromempgroupbydeptno)rwhered.deptno=r.deptno;2.列出薪金比smith高的所有员工。select*fro......
  • 结对编程——四则运算练习题
    结对编程题目如下:小学老师要每周给同学出300道四则运算练习题。这个程序有很多种实现方式:C/C++C#/VB.net/JavaExcelUnixShellEmacs/Powershell/VbscriptPerlPython一个或两个运算符(a+b或a+b+c),100以内的数字,不需要写答案。需要检查答案是否正确,并且保证答案在0......
  • NFS练习题
    NFS练习题1.开放/nfs/share目录,提供给任意用户只读(/etc/exportsro)查询1.任意客户端2.任意的用户​​​​ 服务端showmoutexportfssystemctlstartnfs 修改了nfs配置文件,需要重启什么吗?修改了nfs配置文件,只需要让nfs重新读取该配置文件即可,你都不需要重新,因为你......
  • 【CSAPP】进程 | 上下文切换 | 用户视角下的并发进程
     ......
  • C++ Primer 第五版 第十一章 练习题编程题目答案
    https://github.com/jzplp/Cpp-Primer-Answer练习11.1map用关键字索引,是一个字典。vector用整数索引,是一个列表。练习11.2list链表vector顺序列表deque双端队列map字典set集合练习11.311.3map单词计数程序代码练习11.411.4去标点map单词计数程序代码练习11.5如果关键......
  • csapp
    ComputerSystem:AProgramer'sPerspective计算机系统漫游编译系统组成预处理器编译器汇编器链接器预处理阶段:预处理器根据字符'#'开头的命令,修改原始的C程序,将头文件直接插入程序文本中,得到一个以.i作为文件扩展名的程序.编译阶段:编译器将文本文件.i翻译......
  • A模块练习题
    mysql练习题1.查找数据库版本号mysql>selectversion();2.查找数据库列表mysql>showtables;3.查看所有用户和权限,找到可以从任意IP地址访问mysql>showgrantsforroot@localhostmysql>selectdistinctconcat('user:''',user,'''@''',......
  • Mysql练习题
    ......
  • 类和对象练习题
    ......