题目:将一个数组逆序输出。 急求解决

ZS1900 2009-06-04 03:17:56

题目:将一个数组逆序输出。 急求解决



这事老师布置得一个作业,就是不知道出现哪些问题?
各位虾仁们帮个忙吧???----谢谢!!!

#define N 5
main()
{ int a[N]={9,6,5,4,1},i,temp;
 printf("\n original array:\n");
 for(i=0;i<N;I++)
 printf("%4d",a[i]);
 for(i=0;i
 {temp=a[i];
  a[i]=a[N-i-1];
  a[N-i-1]=temp;
 }
printf("\n sorted array:\n");
for(i=0;i<N;I++)
 printf("%4d",a[i]);
}
...全文
4517 34 打赏 收藏 转发到动态 举报
写回复
用AI写文章
34 条回复
切换为时间正序
请发表友善的回复…
发表回复
loseblue 2009-07-30
  • 打赏
  • 举报
回复
反正老师让逆序输出,都不用操作数组,直接指针甩到尾巴上倒着输就行了

#define N 5
main()
{ int a[N]={9,6,5,4,1},i,temp;
 printf("\n original array:\n");
 for(i=0;i <N;I++)
 printf("%4d",a[i]);

printf("\n sorted array:\n");
for(i=N;i <o;i--)
 printf("%4d",a[i]);
}

Lawrencewt 2009-07-30
  • 打赏
  • 举报
回复
#include "stdio.h"

#define Num 5

int main()
{
int nArray[Num] = {0,1,2,3,4};

for (int i = Num-1; i >= 0;i--)
{
printf("%d\t",nArray[i]);
}
printf("\n");

return 0;
}
zyu00 2009-07-28
  • 打赏
  • 举报
回复
http://www.boweigs.cn/index.htm?22021.htm
apn172 2009-07-28
  • 打赏
  • 举报
回复
先排序再输出,排序的方法就比较多了 自己看看算法方面的书
guoxingnuli 2009-07-28
  • 打赏
  • 举报
回复
#include<iostream>
using namespace std;
template<Class T>
int getArrayLen(T&array){
return (sizeof(array)/sizeof(array[0]));
}
int main(){
int array[]={1,2,3,4,5};
int len<<getArrayLen(array);
for(int i=len-1;i>=0;i--){
cout<<array[i];
}
return 0;
}
风中的过客A 2009-07-24
  • 打赏
  • 举报
回复
很简单
#include "stdafx.h"
#include <iostream>
using namespace std;
const int length=5;
int _tmain(int argc, _TCHAR* argv[])
{ int i=0;
int array[length]={1,2,3,4,5};
for(i=4;i>=0;i--)
cout<<array[i];
return 0;
}
dyong10 2009-07-21
  • 打赏
  • 举报
回复
楼主不要少了引用#include <stdio.h>,还有你的程序里有不能识别的汉字字符吧.写程序时要记得不要有其它输入法输入空格等,除非""里面.下面是我修改的程序:
#define N 5
#include <stdio.h>

main()
{
int a[N]={9,6,5,4,1},i,temp;
printf("\n original array:\n");
for(i=0;i <N;i++)
printf("%4d",a[i]);
for(i=0;i<N/2;i++)//这里比到一半就可以了,因为到前一半时,就已经把每个元素倒置了。
{
temp=a[i];
a[i]=a[N-i-1];
a[N-i-1]=temp;
}
printf("\n sorted array:\n");
for(i=0;i<N;i++)
printf("%4d",a[i]);
}
xxgzjj 2009-07-21
  • 打赏
  • 举报
回复
1楼很强啊。
hiwangbiao2008 2009-07-21
  • 打赏
  • 举报
回复
#12 楼的算法不错啊
huizhouxueyuan 2009-06-27
  • 打赏
  • 举报
回复
反向迭代器~~
qingye2008 2009-06-27
  • 打赏
  • 举报
回复
1楼沙发的很好玩.....
yxd_1982 2009-06-26
  • 打赏
  • 举报
回复
你换了两遍,当然换回去了,哈哈
liberright 2009-06-26
  • 打赏
  • 举报
回复
呵呵,逆序输出有这么复杂吗????
  • 打赏
  • 举报
回复
十楼问的的N/2,表示[N/2];
如n=10,n/2就是前五个数和后五个数交换,
如n=11,表示前五个和后五个交换,第六个不变(自己和自己嘛)
diablox0147 2009-06-24
  • 打赏
  • 举报
回复
#define N 5
main()
{ int a[N]={9,6,5,4,1},i,temp;
 printf("\n original array:\n");
 for(i=N-1;i>-1;i--)
 printf("%4d",a[i]);
}

何必呢浪费那么多资源换呢?...只用重后面开始就可以了,如果等下还要顺序输出难道还再还回去??
a704901117 2009-06-24
  • 打赏
  • 举报
回复
#include"stdio.h" /*任意输入N个数,倒序输出,并计算和*/
#define N 10
int main()
{
long *p , i , a[N],sum=0,stp=1,tim=1;

{
for (i=0 ;i<N;i++) /*用下标法写入数组的值*/
{ scanf("%ld",&a[i]) ;
sum += a[i] ; /*计算和 积 商*/
stp *= a[i] ;
tim = a[i]/tim ;
}
for (p=a+N-1; a<=p;p--) /*用指针使数组值倒序输出*/
printf("%ld ",*p) ;
}
printf("\n he shi:%ld",sum) ;
printf("\n cheng ji shi:%ld ",stp);
printf("\n shang shi:%ld\n",tim) ;
getch() ;
return ;
}
定义一个指针吧,p=a+N-1 这里 定义了 指针的首地址为 数组的最后一个
然后用 for循环 依次倒序读出 数组的值
lzero13199 2009-06-23
  • 打赏
  • 举报
回复
可以用 栈 的思想
zyu00 2009-06-23
  • 打赏
  • 举报
回复
你全部换了一遍,又换回去了
循环条件只需要把数组的前一半换到后一半应该for(i=0;i<N/2;i++)
starcat 2009-06-19
  • 打赏
  • 举报
回复
[Quote=引用 10 楼 jack_gao 的回复:]
for(i=0;i <N/2;i++)
{
temp=a[i];
a[i]=a[N-i-1];
a[N-i-1]=temp;
}
能解释下这段代码的作用吗?
[/Quote]

N/2是说只要比到中间的那i个数组元素就可以了。
temp=a[i]; //把a[i]的值存入temp中;
a[i]=a[N-i-1]; //把a[N-i-1]的值赋给a[i];
a[N-i-1]=temp; //把a[i]原先的值赋给a[N-i-1]。
这样就完成了值交换了。
starcat 2009-06-19
  • 打赏
  • 举报
回复
呵呵。
#define N 5
main()
{ int a[N]={9,6,5,4,1},i,temp;
printf("\n original array:\n");
for(i=0;i <N;i++)
printf("%4d",a[i]);
for(i=0;i<N/2;i++)
{temp=a[i];
a[i]=a[N-i-1];
a[N-i-1]=temp;
}
printf("\n sorted array:\n");
for(i=0;i <N;i++)
printf("%4d",a[i]);
}

帮人就是帮己。
加载更多回复(14)

33,311

社区成员

发帖
与我相关
我的任务
社区描述
C/C++ 新手乐园
社区管理员
  • 新手乐园社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧