| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 1672 人关注过本帖
标题:将数组前N个元素逆序排放
只看楼主 加入收藏
a761171048
Rank: 1
来 自:河南省洛阳市
等 级:新手上路
帖 子:24
专家分:0
注 册:2016-7-15
收藏
 问题点数:0 回复次数:6 
将数组前N个元素逆序排放
将数组前N个元素逆序排放 即array【0】与array【n-1】互唤,array【1】与array【n-2】互换.....
#include<stdio.h>
void change(int array,int n);
main()
{
    int a[10]={1,2,3,4,5,6,7,8,9,10},m;
    scanf("%d",&m);
    change(a[10],m);
}
void change{int array,int n}
{
        int i,t;
for(i=0;i<n/2;i++)
{
    t=a[i];
a[i]=a[n-i-1];
a[n-i-1]=t;
}
for(i=0;i<10;i++)
printf("%d",a[i]);
}
哪错了?求解
搜索更多相关主题的帖子: change 元素 
2016-08-03 09:30
linlulu001
Rank: 13Rank: 13Rank: 13Rank: 13
等 级:贵宾
威 望:20
帖 子:944
专家分:4047
注 册:2016-4-13
收藏
得分:0 
#include<stdio.h>
void change(int *a,int n);
main()
{
    int a[10]={1,2,3,4,5,6,7,8,9,10},m;
    scanf("%d",&m);
    change(&a[0],m);
}
void change(int *a,int n)
{
        int i,t;
for(i=0;i<n/2;i++)
{
    t=a[i];
a[i]=a[n-i-1];
a[n-i-1]=t;
}
for(i=0;i<10;i++)
printf("%d",a[i]);
}
2016-08-03 09:45
rjsp
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
等 级:版主
威 望:528
帖 子:9024
专家分:54030
注 册:2011-1-18
收藏
得分:0 
程序代码:
#include <stdio.h>

void reverse( int arr[], size_t n );

int main( void )
{
    int a[10] = { 1,2,3,4,5,6,7,8,9,10 };

    size_t n;
    scanf( "%zu", &n );
    if( n > sizeof(a)/sizeof(*a) )
        n = sizeof(a)/sizeof(*a);

    reverse( a, n );

    for( size_t i=0; i!=sizeof(a)/sizeof(*a); ++i )
        printf( " %d", a[i] );

    return 0;
}

void reverse( int arr[], size_t n )
{
    for( size_t i=0; i<n; ++i, --n )
    {
        int tmp = arr[i];
        arr[i] = arr[n-1];
        arr[n-1] = tmp;
    }
}

输入
7
输出
7 6 5 4 3 2 1 8 9 10

2016-08-03 09:51
captain2050
Rank: 2
等 级:论坛游民
帖 子:57
专家分:43
注 册:2016-7-15
收藏
得分:0 
回复 楼主 a761171048
首先你得弄懂形参和实参的概念
你需要把chang形参里的array改成像array[]这样的
按后再把chang函数里的a[]都换成array[]

2016-08-03 10:32
a761171048
Rank: 1
来 自:河南省洛阳市
等 级:新手上路
帖 子:24
专家分:0
注 册:2016-7-15
收藏
得分:0 
回复 2楼 linlulu001
这个*a的意思是什么?是指针吗  还能这样用?

[此贴子已经被作者于2016-8-5 10:26编辑过]


不忘初心才是真
2016-08-05 10:12
a761171048
Rank: 1
来 自:河南省洛阳市
等 级:新手上路
帖 子:24
专家分:0
注 册:2016-7-15
收藏
得分:0 
回复 4楼 captain2050
#include<stdio.h>
void change(int array[],int n);
main()
{
    int a[10]={1,2,3,4,5,6,7,8,9,10},m;
    scanf("%d",&m);
    change(a[10],m);
}
void change{int array[],int n}
{
        int i,t;
for(i=0;i<n/2;i++)
{
    t=array[i];
array[i]=array[n-i-1];
array[n-i-1]=t;
}
for(i=0;i<10;i++)
printf("%d",array[i]);
}
改成这样但是还是有错误  好像说结尾有问题

不忘初心才是真
2016-08-05 10:14
a761171048
Rank: 1
来 自:河南省洛阳市
等 级:新手上路
帖 子:24
专家分:0
注 册:2016-7-15
收藏
得分:0 
回复 3楼 rjsp
我不懂这个sizeof是怎么回事   看百度百科也看不懂

不忘初心才是真
2016-08-05 10:15
快速回复:将数组前N个元素逆序排放
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.030196 second(s), 8 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved