| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 532 人关注过本帖
标题:出来练习一下,看看能用几种方法
只看楼主 加入收藏
李庚
Rank: 2
来 自:河南南阳
等 级:论坛游民
帖 子:36
专家分:50
注 册:2011-10-17
结帖率:50%
收藏
已结贴  问题点数:20 回复次数:4 
出来练习一下,看看能用几种方法
定义一个函数,将一维数组a中n个整数按相反顺序存放。在main函数中输入数组值,然后调用该函数,最后将反序存放的数组值输出。
搜索更多相关主题的帖子: 方法 
2012-06-11 11:25
demonleer
Rank: 9Rank: 9Rank: 9
等 级:贵宾
威 望:10
帖 子:483
专家分:1225
注 册:2012-6-4
收藏
得分:5 
程序代码:
#include<stdio.h>

void reverse(int *p)
{
    int *tmp = p;
    int n = 0, m = 0, i = 0, change;
    while (*tmp!=0)
    {
        tmp++;
        n++;
    }
    m = n>>1;
    for (; i<m; i++)
    {
        change = *(p+i);
        *(p+i) = *(p+n-i-1);
        *(p+n-i-1) = change;
    }
}

void print_array(int *p)
{
    while (*p!=0)
    {
        printf("%d ",*p++);
    }
    printf("\n");
}

void main()
{
    int array[100] = {0};
    int i = 0;
    for (; i<99; i++)
    {
        printf("please input a value: (0 means finish)\n");
        scanf("%d",&array[i]);
        if (array[i]==0)
        {
            break;
        }
    }
    print_array(array);
    reverse(array);
    print_array(array);
    reverse(array);
    print_array(array);
}

图片附件: 游客没有浏览图片的权限,请 登录注册
2012-06-11 12:55
鱼∞鱼
Rank: 2
等 级:论坛游民
帖 子:31
专家分:67
注 册:2012-6-5
收藏
得分:5 
#include<stdio.h>
#define N 5
int main()
{void reverse(int a[N]);
int i,b[N];
printf("请输入5个数字:\n");
for(i=0;i<N;i++)
scanf("%d",&b[i]);
printf("输入的数组元素为:\n");
for(i=0;i<N;i++)
printf("%d\t",b[i]);
printf("\n");
reverse(b);
printf("反序后的数组排放为:\n");
for(i=0;i<N;i++)
printf("%d\t",b[i]);
printf("\n");
return 0;}
void reverse(int a[N])
{int i,t;
for(i=0;i<N/2;i++)
{t=a[i];
a[i]=a[N-1-i];
a[N-1-i]=t;}}
在下写的 VC下能运行出来
2012-06-11 19:27
qq595572145
Rank: 1
等 级:新手上路
帖 子:4
专家分:7
注 册:2012-6-12
收藏
得分:5 
#include <stdio.h>
void px(int a[],int n)
{
  int j,temp;
  for(j=0;j<n/2;j++)
  {
    {
     temp=a[j];
     a[j]=a[n-1-j];
     a[n-1-j]=temp;
     }
  }
}
main()
{
  int a[10],i;
  printf("请输入10个数:\n");
  for(i=0;i<10;i++)
  scanf("%d",&a[i]);
  px(a,10);
  for(i=0;i<10;i++)
  printf("%d",a[i]);
  getch();
}
我的在win-tc下可以运行出来,不知道是否符合你的意思!
2012-06-12 19:04
m21wo
Rank: 10Rank: 10Rank: 10
等 级:青峰侠
威 望:4
帖 子:440
专家分:1905
注 册:2010-9-23
收藏
得分:5 
我简单的写两种吧
第一种
程序代码:
#include <iostream>
using namespace std;

void reverse(int* a,int n)
{
    int *p=a;
    int *q=a+n-1;
    int i=0;
    while(i<n/2)
    {
        int temp=*p;
        *p=*q;
        *q=temp;
        p++;
        q--;
        i++;
    }

}


void output(int a[],int n)
{
    for(int i=0;i<n;i++)
    {
        cout<<a[i]<<"\t";
    }
    cout<<endl;
}
int main()
{
    int a[]={4,5,6,7,1,9};
    reverse(a,sizeof(a)/sizeof(*a));
    output(a,sizeof(a)/sizeof(*a));
    return 0;
}
第二种
程序代码:
#include<iostream>
#include<algorithm>
using namespace std;
void output(int a[],int n)
{
    for(int i=0;i<n;i++)
    {
        cout<<a[i]<<"\t";
    }
    cout<<endl;
}
int main()
{
    int a[]={4,5,6,7,1,9};
    std::reverse(a,a+sizeof(a)/sizeof(*a));
    output(a,sizeof(a)/sizeof(*a));
    return 0;
}



If You Want Something, Go Get It, Period.
2012-06-12 20:32
快速回复:出来练习一下,看看能用几种方法
数据加载中...
 
   



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

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