鱼C论坛

 找回密码
 立即注册
查看: 2808|回复: 4

[已解决]C语言数列的值倒过来问题

[复制链接]
发表于 2018-8-13 09:58:33 | 显示全部楼层 |阅读模式

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

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

x
#include<stdio.h>
void main()
{
        int a[10],i;
        void swap(int c[10]);
        for(i = 0 ;i < 10 ;i++)
        {
                scanf("%d",&a[i]);
        }
        swap(int a[10]);
        for(i = 0 ;i < 10 ;i++)
        {
                printf("%d\n",a[i]);
        }
}
void swap(int c[10])
{
        int b[10],i;
        for(i = 0; i < 10 ;i++)
        {
                b[i] = c[9 - i];
        }
        for(i = 0; i < 10 ;i++)
        {
                c[i] = b[i];
        }
}

报错是
Compiling...
1.c
D:\C\swap\1.c(10) : error C2143: syntax error : missing ')' before 'type'
D:\C\swap\1.c(10) : error C2198: 'swap' : too few actual parameters
D:\C\swap\1.c(10) : error C2059: syntax error : ')'
执行 cl.exe 时出错.

swap.exe - 1 error(s), 0 warning(s)


都错在       
swap(int a[10]);
这行
啥原因,啥意思呢,求解释
感谢各位大佬
最佳答案
2018-8-13 12:12:49
#include<stdio.h>

void swap(int c[10]);

void main()
{
    int a[10],i;
   
    printf(""); //加个提示吧
    for(i = 0 ;i < 10 ;i++)
    {
        scanf("%d", &a[i]);
    }
    swap(a);   // 不是 swap(int a[10])
    printf("\n");
         
    for(i = 0 ;i < 10 ;i++)
    {
        printf("%d\n", a[i]);
    }
}

void swap(int c[10]) //没帮你检查
{
    int b[10],i;
    for(i = 0; i < 10 ;i++)
    {
            b[i] = c[9 - i];
    }
    for(i = 0; i < 10 ;i++)
    {
            c[i] = b[i];
    }
}
小甲鱼最新课程 -> https://ilovefishc.com
回复

使用道具 举报

发表于 2018-8-13 11:08:54 | 显示全部楼层
数组传递只能传地址,而不能同时传长度,需要这样写
void swap(int *a, int length)
来同时传递数组及其长度
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2018-8-13 11:23:10 | 显示全部楼层
#include<stdio.h>
void main()
{
        int a[10],i;
        void swap(int c[],int n);
        for(i = 0 ;i < 10 ;i++)
        {
                scanf("%d",&a[i]);
        }
        swap(int a[10],int n);
        for(i = 0 ;i < 10 ;i++)
        {
                printf("%d\n",a[i]);
        }
}
void swap(int c[],int n)
{
        int b[10],i;
        for(i = 0; i < 10 ;i++)
        {
                b[i] = c[9 - i];
        }
        for(i = 0; i < 10 ;i++)
        {
                c[i] = b[i];
        }
}

还是不行呀,提示一样的错误,大佬
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2018-8-13 12:12:49 | 显示全部楼层    本楼为最佳答案   
#include<stdio.h>

void swap(int c[10]);

void main()
{
    int a[10],i;
   
    printf(""); //加个提示吧
    for(i = 0 ;i < 10 ;i++)
    {
        scanf("%d", &a[i]);
    }
    swap(a);   // 不是 swap(int a[10])
    printf("\n");
         
    for(i = 0 ;i < 10 ;i++)
    {
        printf("%d\n", a[i]);
    }
}

void swap(int c[10]) //没帮你检查
{
    int b[10],i;
    for(i = 0; i < 10 ;i++)
    {
            b[i] = c[9 - i];
    }
    for(i = 0; i < 10 ;i++)
    {
            c[i] = b[i];
    }
}
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2018-8-13 17:37:18 | 显示全部楼层
已解决,感谢大佬~
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

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

本版积分规则

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

GMT+8, 2025-6-22 01:04

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

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