C语言编写程序,将一个一维数组的值按逆序重新存放。 15

用C语言编写一个程序,将一个一维数组的值逆序存放,主要问题是这个数组的个数是不确定的,就是说你可以输入5个数字来组成这个一维数组,也可以输入10个数字来组成这个一维数组,... 用C语言编写一个程序,将一个一维数组的值逆序存放,主要问题是这个数组的个数是不确定的,就是说你可以输入5个数字来组成这个一维数组,也可以输入10个数字来组成这个一维数组,,由人为随机决定这个数组的长度,,,
这个是数组后面的习题,,而指针这章在数组后面,,也就是说不用指针,当然如果各位用指针作出来了,也没关系,我想我自己应该也能慢慢的看懂的,,,
展开
 我来答
果果就是爱生活
高能答主

2020-04-21 · 专注生活教育知识分享
果果就是爱生活
采纳数:2071 获赞数:272223

向TA提问 私信TA
展开全部

#include<stdio.h>

int  main()

{

    int a[5]={8,6,5,4,1},i,n=5,temp;

    for(i=0;i<n/2;i++)

    {

        temp=a[i];

        a[i]=a[n-i-1];

        a[n-i-1]=temp;          

    }                 

   for(i=0;i<n;i++)

   {

      printf("%d\t",a[i]);        

   }               

    system("pause");

    return 0;

}

扩展资料:   

选择排序

主要思想就是,基本上默认数组中第一个元素为最大(最小)值,之后将这个元素和后面的每个元素都进行比较,以由大到小排序为例,当第一个值遇到比其大的,就进行交换。这样第一轮过后,第一位就是最大的。

接着进行第二轮,由第二个数开始逐个比较,遇到比第二个数大的进行交换,这样第二轮之后第二个数就是第二大的了,以此类推,不断进行选择,最后完成排序。

void selectSort(int numbers[], int length) {

  for (int i = 0; i < length; i++) {

    for (int j = i + 1; j < length; j++) {

      if (numbers[i] < numbers[j]) {

        int temp = numbers[i];

        numbers[i] = numbers[j];

        numbers[j] = temp;

      }

    }

  }

}

 int main(int argc, const char * argv[]) {

  int myArray[] = {42, 7, 1, -3, 88};

  int length = sizeof(myArray) / sizeof(myArray[0]);

  selectSort(myArray, length);

  for (int i = 0; i < length; i++) {

    printf("%i ", myArray[i]);

  }

  return 0;

}

当第一个数来比较的时候,i = 0,那么j应该等于i + 1,因为第一个数要和第二个数开始比,并且比较length - 1次;当i = 1时,j = 2,并且比较length - 2次,以此类推;上面写的是由大到小排序。

娱乐小八卦啊a
高粉答主

2020-03-07 · 娱乐小八卦,天天都知道
娱乐小八卦啊a
采纳数:256 获赞数:117837

向TA提问 私信TA
展开全部

方法:采用for循环,交换len/2次既可。不采用冒泡的原因是因为此数组中的数据无序。

代码如下:

#include<stdio.h>

int main()

{

char arr[10] = { 1, 2, 3, 4, 5, 6, 7, 8, 9, 0 };

int i = 0;

int len = sizeof(arr) / sizeof(arr[0]);

int tmp = 0;  

for (i = 0; i < (len/2); ++i)    //进行len/2次交换

{

tmp = arr[9 - i];    

arr[9 - i] = arr[i];

arr[i] = tmp;

}

for (i = 0; i < len; ++i)

{

printf(" %d ", arr[i]);     //输出

}

return 0;

}

扩展资料

for 循环语句首先要强调两点:

1、表达式1、表达式2和表达式3之间是用分号;隔开的,千万不要写成逗号。

2、for(表达式1;表达式2;表达式3)的后面千万不要加分号,很多新手都会犯这种错误——会情不自禁地在后面加分号。

下面来看看for 循环语句的执行过程:

1、求解表达式1。

2、求解表达式2。若其值为真,则执行 for 语句中指定的内嵌语句,然后执行第3步;若表达式2值为假,则结束循环,转到第5步。

3、求解表达式3。

4、转回上面第2步继续执行。

5、循环结束,执行 for 语句下面的语句。


本回答被网友采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
匿名用户
推荐于2017-12-15
展开全部
#include"stdio.h"
main()
{
int a[10],i,temp;/*定义数组的长度为10,你也可以换成其他的,当然,这个换了下面的也要换*/
for(i=0;i<10;i++)
scanf(%d),&a[i];
putchar('\n');
for(i=0;i<10/2;i++)
{temp=a[i];
a[i]=a[10-i-1];/*第一个和最后一个交换,第二个和倒数第二个交换,......一直到10/2的时候,也就是数组的一半的时候*/
a[10-i-1]=temp;
}
for(i=0;i<10;i++)
printf("%d",a[i]);
printf("\n");
}

祝你好运!!!觉得好的话分数给我!!!
本回答被网友采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
yu2212
2009-06-09 · TA获得超过2391个赞
知道大有可为答主
回答量:3915
采纳率:0%
帮助的人:2939万
展开全部
只要把输入的数逆序就可以了么?不用按大小排列吧?

、、、、、、、、、、、、、、、、、、、、、、、、、、
上机的时候写过。下午下课回来写给你。如果你没关闭问题的话

C语言在C99标准里,支持了动态数组了咯
=====================
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
cgiggle
2009-06-09 · TA获得超过1957个赞
知道大有可为答主
回答量:1996
采纳率:0%
帮助的人:1255万
展开全部
长度可以根据输入的时候记录下来
有了长度即可简单排序了(推荐冒泡)
咯咯
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(4)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式