C语言编写程序,将一个一维数组的值按逆序重新存放。 15
这个是数组后面的习题,,而指针这章在数组后面,,也就是说不用指针,当然如果各位用指针作出来了,也没关系,我想我自己应该也能慢慢的看懂的,,, 展开
#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次,以此类推;上面写的是由大到小排序。
方法:采用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
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");
}
祝你好运!!!觉得好的话分数给我!!!
、、、、、、、、、、、、、、、、、、、、、、、、、、
上机的时候写过。下午下课回来写给你。如果你没关闭问题的话
C语言在C99标准里,支持了动态数组了咯
=====================
有了长度即可简单排序了(推荐冒泡)
咯咯