arrays - 我必须反转数组 [1,2,3,4,5,6,7] 我被卡住了
问题描述
#include <stdio.h>
int reverse(int *prr, int i)
{
for (i = 6; i; i--)
{
printf("%d is reverse \n", *prr + i);
}
}
int main()
{
int arrr[] = {1, 2, 3, 4, 5, 6, 7};
int *ptr = arrr;
reverse(ptr, 6);
return 0;
}
我得到的输出是
7 is reverse
6 is reverse
5 is reverse
4 is reverse
3 is reverse
2 is reverse
但不是1!
解决方案
循环条件i
等效于i != 0
(并且对于您的特定用例i > 0
)。
也就是说,当i
到达时循环将结束0
,因此不会打印索引。
为了能够打印最后一个元素,您需要将其包含在循环中,并带有类似i >= 0
.
推荐阅读
- python - 通过循环创建对象
- vue.js - Vue - 存储数据最佳实践
- python - bigARTM 安装:Cmake 找不到 Boost
- docker - DOCKER 如何使用 Windows 映像在 docker run 上设置密码和用户名?
- c++ - 如何使用 GCC 读取 .s 文件?
- android - Android中cmake的路径
- vba - 任务完成时发送电子邮件 - 新方法
- javascript - 网格 div 和 js 滚动动画的一种背景
- c - 在记事本中打开 C 程序创建的文本文件时显示错误
- javascript - 为什么 time() 和 Date.now 给出不同的结果?