[英]Array Reversal - HackerRank problem - Using C language
我在 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))
(start != end) || (start != (end+1))
將始終為真,因為end != (end+1)
和start
永遠不會同時等於end
和end+1
。
它應該是(start != end) && (start != (end+1))
。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.