我编的这个为什么不能达到我要的结果呢?
#include<stdio.h>
{
main()
int a[6],i;
for(i=0;i<=5;i++)
scanf("%d",&a[i]);
for(i=5;i>=0;i--)
printf("%3d",&a[i]);
}
[此贴子已经被作者于2006-12-5 10:51:27编辑过]
----------------解决方案--------------------------------------------------------
你这样是把他反序输出来了,并没有对实际的数组进行反序存放.你看看这样是不是你要的答案.
#include<stdio.h>
{
main()
int a[6],i,j;
for(i=0;i<=5;i++)
scanf("%d",&a[i]);
for(i=0,j=5;i<=5;i++,j--)
{
a[i]=a[i]+a[j];
a[j]=a[i]-a[j];
a[i]=a[i]-a[j];
printf("%3d",&a[i]);
}
}
----------------解决方案--------------------------------------------------------
你这样是把他反序输出来了,并没有对实际的数组进行反序存放.你看看这样是不是你要的答案.
#include<stdio.h>
main()
{int a[6],i,j;
for(i=0;i<=5;i++)
scanf("%d",&a[i]);
for(i=0,j=5;i<=5;i++,j--)
{
a[i]=a[i]+a[j];
a[j]=a[i]-a[j];
a[i]=a[i]-a[j];
printf("%3d",&a[i]);
}
}
第二个FOR语句的算法是怎么得出来的啊?
我输入1,2,3,4,5,6
结果是:―22―20―18―16―14―12―(中间那些横线也是输出的)
----------------解决方案--------------------------------------------------------
#include<stdio.h>
#include <fstream>
using namespace std;
main()
{
int a[6],i,j;
int temp;
for(i=0;i<6;i++)
scanf("%d",&a[i]);
for(i=5,j=0;i>(6/2-1);i--,j++)
{ temp=a[i];
a[i]=a[j];
a[j]=temp;
//printf("%3d",a[j]);
}
for(i=0;i<6;i++)
printf("%3d\n",a[i]);
}
----------------解决方案--------------------------------------------------------
将一个数组中的值按逆序重新存放。eg:input 1,2,3,4,5,6 output:6,5,4,3,2,1
我编的这个为什么不能达到我要的结果呢?
#include<stdio.h>
/* { */
main() {
int a[6],i;
for(i=0;i<=5;i++)
scanf("%d",&a[i]);
for(i=5;i>=0;i--)
printf("%3d",a[i]);
}
----------------解决方案--------------------------------------------------------
改的程序在楼上
注意:输出时无须写 '&';
函数括号在函数名,函数参数后;
----------------解决方案--------------------------------------------------------
啊?呵呵,太粗心了....
----------------解决方案--------------------------------------------------------
#include<stdio.h>
#include <fstream>
using namespace std;
main()
{
int a[6],i,j;
int temp;
for(i=0;i<6;i++)
scanf("%d",&a[i]);
for(i=5,j=0;i>(6/2-1);i--,j++)
{ temp=a[i];
a[i]=a[j];
a[j]=temp;
//printf("%3d",a[j]);
}
for(i=0;i<6;i++)
printf("%3d\n",a[i]);
}
这个算法妙,利用对称交换。
但是假如是输入的个数是单数的话,就要改一下了。谢了。
----------------解决方案--------------------------------------------------------
有那必要吗?
----------------解决方案--------------------------------------------------------
对不起,上面写错了个地方,请原谅下........
main()
int a[6],i,j;
for(i=0;i<=5;i++)
scanf("%d",&a[i]);
for(i=0,j=5;i<=5;i++,j--)
{
a[i]=a[i]+a[j];
a[j]=a[i]-a[j];
a[i]=a[i]-a[j];
}
for(i=0;i<=5;i++)
printf("%3d",&a[i]);
i<=5 改为 i<(j+1)/2 就没有问题的了.
----------------解决方案--------------------------------------------------------