| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 43627 人关注过本帖
标题:怎样将一个数组逆序输出?
只看楼主 加入收藏
shaper
Rank: 1
等 级:新手上路
帖 子:1
专家分:0
注 册:2010-3-4
结帖率:0
收藏
已结贴  问题点数:20 回复次数:4 
怎样将一个数组逆序输出?
题目:将一个数组逆序输出。
我看见的答案如下:但其中有局限只适用于10个数,我想把它改为适用于任何一数组(符合题意).小弟我实在改不出来,请教了.
#include<stdio.h>
void main ( )
{
int a[10],i,j,t;
for(i=0;i<10;i++)
scanf("%d",&a[i]);
for(i=0;i<5;i++)
{  j=9-i;
t=a[i];
a[i]=a[j];
a[j]=t;
}
for(i=0;i<10;i++)
printf("%5d",a[i]);
printf("\n");
}
搜索更多相关主题的帖子: 逆序 输出 
2010-06-27 19:01
dstone
Rank: 3Rank: 3
等 级:论坛游侠
帖 子:20
专家分:125
注 册:2010-6-17
收藏
得分:7 
将LEN的值改成你需要的数组的长度就可以了
程序代码:
#include <stdio.h>

/*LEN代表要处理的数组的长度*/
#define LEN 11

int main(void)
{
    /*定义要处理的数组*/
    int a[LEN];

    /*辅助处理的临时变量*/
    int i, j, t;

    /*循环初始化数组的每个元素*/
    for(i = 0; i < LEN; i++)
        scanf("%d",&a[i]);

    /*将数组的前后元素反序*/
    for(i = 0; i < LEN/2; i++)
    { 
        j = LEN - 1 - i;
        t = a[i];
        a[i] = a[j];
        a[j] = t;
    }

    /*循环输出每个元素*/
    for(i = 0; i < LEN; i++)
        printf("%5d",a[i]);

    printf("\n");

    getchar();
    return 0;
}

2010-06-27 21:26
一口三个汉堡
Rank: 7Rank: 7Rank: 7
等 级:黑侠
威 望:3
帖 子:155
专家分:525
注 册:2010-3-21
收藏
得分:7 
如果你只是想要编程者自己设定数组大小就用二楼的就可以了。
如果你想要用户自己设定,我可以给你一个思路,你自己去尝试去编下。
用字符串进行输入,输入时数字间以某个字符作为间隔,
编写一个函数对字符串进行处理,运用atoi()函数把数字字符串转换成整数,用一个整数数组存放并计算其大小LEN,
再用一个函数,该函数的功能对长度LEN的整数数组进行倒序。
思路就这样了。该用的函数都给你,如果你想要我帮你编的话,对不起,我没那个义务。

坚持做对的事情,而不是容易的事情。
2010-06-27 22:02
sunyanchao
Rank: 2
等 级:论坛游民
帖 子:2
专家分:17
注 册:2010-6-27
收藏
得分:7 

你输入的时候用
while(a[i]!="/n")
{
scanf("%d",&a[i]);
i++;
n++;

}//一直输入整数  ,当输入换行符时,停止输入
后面的就跟一楼的一样了,  我只是认为这样的话不必每输入一次就改次LEN
2010-06-27 22:09
灿烂云端
Rank: 1
等 级:新手上路
帖 子:1
专家分:0
注 册:2019-5-16
收藏
得分:0 
回复 楼主 shaper
#include <stdio.h>
int main(void)
{
    /*定义要处理的数组*/
    int a[100];

    /*辅助处理的临时变量*/
    int i, j, t,x;

    /*初始化数组内元素的个数*/
    scanf("%d",&x);

    /*循环初始化数组的每个元素*/
    for(i = 0; i < x; i++)
        scanf("%d",&a[i]);

    /*将数组的前后元素反序*/
    for(i = 0; i < x/2; i++)
    {
        j = x - 1 - i;
        t = a[i];
        a[i] = a[j];
        a[j] = t;
    }

    /*循环输出每个元素*/
    for(i = 0; i < x; i++)
        printf("%5d",a[i]);

    printf("\n");

    return 0;
}
这是我基于一楼的答案改进的,这样第一次键入的x就可以是用户希望的元素个数,前面int a[100]表示最大可有一百个元素,你也可以更改这个数值。
2019-05-16 00:06
快速回复:怎样将一个数组逆序输出?
数据加载中...
 
   



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

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