c - 在 C 编程中反转前 n 个数字的数组

标签 c arrays reverse

我的函数正在进入无限循环。问题是反转数组的前 n 个整数,例如: array {2,4,1,3}将反转为 {4,2,1,3}由于第一个数字是 2,因此它会交换前 2 个数字,依此类推。

有什么想法吗? :)

我的代码:

int *reverse(int *arr,int n)
{
    int w; 
    int q=arr[0]-1; 
    int first_value = arr[0];

    for(w=0; w<=first_value; w++) 
    {
        arr[w] = arr[q];
        q--;
    }

    return (arr); 
}

最佳答案

int *reverse(int *arr,int n){
    int i, temp;

    for(i = 0; i < --n ; i++){
        temp = arr[i];
        arr[i] = arr[n];
        arr[n] = temp;
    }

    return arr;
}

关于c - 在 C 编程中反转前 n 个数字的数组,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29526868/

相关文章:

c++ - 打印 ppm 文件的数组时出现问题

arrays - 指向二维数组中的行的可变指针

javascript - 如何反转连续 Amcharts 中的 x 轴?

c - 从巨大的 .csv 文件中过滤文本,使用 C 语言

c - CAN通信协议(protocol)栈的设计

c - linux 内核 - pte_xxx() API 在模块编程中不起作用

java - 从 java 文件中读取 N 行?

c - 这个函数如何以相反的顺序打印字符串?

c - 正整数之和 - 打印垃圾值

c++ - 如何将一个窗口的客户区复制到另一个窗口?