鱼C论坛

 找回密码
 立即注册
查看: 1443|回复: 1

[技术交流] 利用数组,正序输入十个数,倒序输出;利用两个程序文件

[复制链接]
发表于 2019-10-30 15:39:56 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能^_^

您需要 登录 才可以下载或查看,没有账号?立即注册

x
#include <stdio.h>

void main()
{
        void reverse(int a[],int n);
        int a[10],i;
        printf("Please input 10 numbers:");

        for(i = 0;i < 10;i++)
        {
                scanf("%d",&a[i]);
        }
        reverse(a,10);

        for(i = 0;i < 10;i++)
        {
                printf("%d ",a[i]);
        }
}

#include <stdio.h>

void reverse(int a[],int n)
{
        int temp,m,*i,*j,*p;
        m = (n - 1)/2;       
        j = a + n - 1;
        i = a;
        p = a + m;
        for(;i < p+1;i++,j--)
        {
                temp = *i;
                *i = *j;
                *j = temp;
        }
}
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2019-10-30 19:49:38 | 显示全部楼层
本帖最后由 bin554385863 于 2019-10-30 20:45 编辑
#include <stdio.h>
void InputArray(int arr[], size_t arr_size) //创建数组
{
        for (size_t i = 0; i < arr_size; i++)
        {
                scanf("%d", &arr[i]);
        }
}
void SortArray(int arr[], size_t arr_size) //冒泡
{
        for (size_t i = 0; i < arr_size; i++)
        {
                for (size_t j = 0; j < i; j++)
                {
                        if (arr[j] > arr[i])
                        {
                                int tmp = arr[j];
                                arr[j] = arr[i];
                                arr[i] = tmp;
                        }
                }
        }
}
void outputArray(int arr[], int arr_size, char flag) //输出
{
        if ((flag != '+') && (flag != '-'))
        {
                printf("Parameter Error");
        }
        else if (flag == '+') //+号表示正序输出;
        {
                for (size_t i = 0; i < arr_size; i++)
                {
                        printf("%d ", arr[i]);
                }
                printf("\n");
        }
        else if (flag == '-')
        {
                for (size_t j = arr_size -1; j != -1; j--) //-号代表反序
                {
                        printf("%d ", arr[j]);
                }
                printf("\n");
        }
}
void reverse(int arr[], int arr_size)//翻转数组
{
        for (size_t i = arr_size -1; i != -1; i--)
        {
                int tmp = arr[i];
                arr[arr_size -1-i] = tmp;
        }
}
int main(int argc, char const *argv[])
{
        int arr[5] = {0};
        InputArray(arr, 5);
        SortArray(arr, 5);
        printf("UP\n");
        outputArray(arr, 5, '+');
        printf("DOWN\n");
        outputArray(arr, 5, '-');

        return 0;
}
---------------------------------------------------------------------------------------------------------------------
E:\Users\86184\Documents\Code>c:\Users\86184\.vscode\extensions\ms-vscode.cpptools-0.26.1\debugAdapters\bin\WindowsDebugLauncher.exe --stdin=Microsoft-MIEngine-In-fjbfyzrh.lgp --stdout=Microsoft-MIEngine-Out-lpm5sbkr.0tp --stderr=Microsoft-MIEngine-Error-1gv22jtx.vuy --pid=Microsoft-MIEngine-Pid-tyuk4jfi.rnc "--dbgExe=E:\My Program\MinGW\bin\gdb.exe" --interpreter=mi

E:\Users\86184\Documents\Code>cmd /C "c:\Users\86184\.vscode\extensions\ms-vscode.cpptools-0.26.1\debugAdapters\bin\WindowsDebugLauncher.exe --stdin=Microsoft-MIEngine-In-ytznha1m.a3y --stdout=Microsoft-MIEngine-Out-mr5tkgrt.ugy --stderr=Microsoft-MIEngine-Error-jey2wj1x.zvl --pid=Microsoft-MIEngine-Pid-dxs4cjcs.qee "--dbgExe=E:\My Program\MinGW\bin\gdb.exe" --interpreter=mi "
6 5 3 2 0
UP
0 2 3 5 6
DOWN
6 5 3 2 0


E:\Users\86184\Documents\Code>

============================================
其实反序输出只要排序号的数组尾部遍历就行
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|手机版|Archiver|鱼C工作室 ( 粤ICP备18085999号-1 | 粤公网安备 44051102000585号)

GMT+8, 2024-10-4 17:26

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表