永发信息网

如何把一组数反转?用c语言定义一个数组,这组数据从键盘中获取。

答案:3  悬赏:60  手机版
解决时间 2021-02-23 20:19
如何把一组数反转?用c语言定义一个数组,这组数据从键盘中获取。
最佳答案
1 输入数组。
2 遍历数组前半部分,将每个元素,与后半部分对称位置交换值。
3 输出结果。
代码:
int main()
{
    int a[10];
    int i;
    for(i = 0; i < 10; i ++)
        scanf("%d",a+i);
    for(i = 0; i < 5; i ++)
    {
        int t = a[i];
        a[i] = a[9-i];
        a[9-i] = t;
    }
    
    for(i = 0; i < 10; i ++)
        printf("%d ",a[i]);
}
全部回答
for循环,从最大一直做自减运算不就好了。追问但是在屏幕上只打印了一个数追答

#include "stdio.h"
int main()
{
  float a[10]={0};
  int i;
  printf("请输入10个数: ");
  for(i=0;i<10;i++)
    scanf("%f",&a[i]);
       printf("反转后输出: ");
  for(i=9;i>=0;i--)
    printf("%0.0f ",a[i]);
  printf(" ");  
}
追问
为什么只输出了一个数?追答楼主 你把数组定义成浮点型的,printf输出那里也是弄成浮点型的 用 %0.0f 这个格式;问题就解决了,但是为什么是这样,我也说不清楚,前段时间我做个矩阵的LU分解时发现的。我这样做就行得通了,作业也交了,但是原因真不知道。
#include "stdio.h"
int main()
{
   int a[10]={0};
   int i,tmp;
   printf("请输入10个数: ");
   for(i=0;i<10;i++)
     scanf("%d",&a[i]);
   //第一个数跟最后一个数交换,第二个与倒数第二个交换,
   //直到数组中间的元素,那么。数组元素肯定就全反转了
   for(i=0;i<10/2;i++)
   {
       tmp=a[i];
       a[i]=a[9-i];
       a[9-i]=tmp;
   }  
   printf("反转后输出: ");
   for(i=0;i<10;i++)
     printf("%d ",a[i]);
   printf(" ");  
}

原来存的是1到10

反转后存的是10到1 
目的达到。追问还有其他办法么?追答这是最有效的方法,还有个方法就是
再用一个数组,倒序存原来的数组的值,再存回来。这样的话,时间就浪费了。追问可以把控制输出的循环变量递减呀
这个我不知道为什么只打印了一个数?
我要举报
如以上问答信息为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
大家都在看
我家电脑开机只显示墙纸进入任务管理器创建新
主创专业烫染美发沙龙地址有知道的么?有点事
启东汇龙镇哪有长日班,适合带小孩的工作
帝纳东方家具工厂直营店这个地址在什么地方,
跟基督山伯爵的剧情类似的,主角从监狱里逃出
多大长白头发
装修还是不装修?
立丰通讯地址在什么地方,想过去办事
六安城北小学附近有那些在售的楼盘啊!?
长安星卡双排2011款发动机型号J L466Q1多少钱
为什么去年还不想结婚的我(26了)今年好想结
我的膝盖前面有个像骨头一样的东西凸出来。
根据下列材料,回答题"Salty"RicePlantBoosts
造梦西游4极品双人号
合肥川味香辣龙虾九江店在什么地方啊,我要过
推荐资讯
恒峰手机地址在哪,我要去那里办事
她有多高用英语怎么说
1929年的世界经济大危机是由多方面的原因引起
已知数列{an}的前四项分别是2/3,-4/9,2/9,-8/
誉佳百货超市怎么去啊,有知道地址的么
电脑重复开机什么意思,而且一直处于开机流程
体操运动员在做吊环项目的“十字支撑”动作时
至宝丹的功用是A.开窍定惊,清热化痰B.清热解
皇冠台球俱乐部(康乃馨南)怎么去啊,有知道地
自己不慎摔倒走医保时,说的第三方赔偿包括自
普通人怎样才能当上演员呢
如何用steam解决dota2输入法问题
正方形一边上任一点到这个正方形两条对角线的
阴历怎么看 ?