簡體   English   中英

數組反轉 - HackerRank 問題 - 使用 C 語言

[英]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永遠不會同時等於endend+1

它應該是(start != end) && (start != (end+1))

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM