arrays - 数组反转 - HackerRank 问题 - 使用 C 语言
问题描述
我在 HackerRank 中遇到问题:https ://www.hackerrank.com/challenges/reverse-array-c/problem
我的想法是将a[0]的值存储到一个变量(store),然后分配a[0] = a[end],然后a[end] = store,之后我将移动到a[1]和a [结束-1]。
这是我的代码:
#include <stdio.h>
#include <stdlib.h>
int main()
{
int num, *arr, i;
scanf("%d", &num);
arr = (int*) malloc(num * sizeof(int));
for(i = 0; i < num; i++) {
scanf("%d", arr + i);
}
/* Write the logic to reverse the array. */
int start = 0, end = num - 1;
int store;
while ((start != end) || (start != (end+1)))
{
store = arr[start];
arr[start] = arr[end];
arr[end] = store;
start++;
end--;
}
for(i = 0; i < num; i++)
printf("%d ", *(arr + i));
free(arr);
return 0;
}
但是,我的代码结果什么也没返回。谁能帮我指出我的代码中的问题?我真的很感激。
解决方案
该条件(start != end) || (start != (end+1))
将始终为真,因为end != (end+1)
并且永远不会同时start
等于两者。end
end+1
应该是(start != end) && (start != (end+1))
。
推荐阅读
- jira-rest-api - 使用 R 连接到 JIRA
- android - 如何声明一个适用于 lambda 的接口?
- excel - 如何检查列表中是否缺少日期?
- html - 获取一个 div 来填充整个页面以获取单独的背景图像
- css - 使用 CSS 在 GridPane 中居中子级
- javascript - 使用 JQuery 隐藏动态创建的 HTML 元素
- apache-spark - Pyspark:spark-submit 不像 CLI 那样工作
- html - 使用 R 将 html 列表转换为树
- python - 在python中,一个字典中可以有多个同名的键吗?如果是这样,您将如何删除特定的?
- python - 从 scipy 优化寻根算法