
正文
将c语言中的数组数值前后调换,c语言数组换位
提示:扫一扫查出行【扫一扫了解最新限行尾号】
复制提示
在C语言中如何实现数组中第一个数的值与最后一个数的值的交换
1、地址是array+9,所以我觉得是这里出了问题,因为p指向的array+10的地址储存的是个未知的值,下面再进行交换的时候再用*p作为中间量进行值的交换时可能就会出问题。所以我建议楼主在上面这段代码下写个:printf(now,*p=%d\n,*p);看*p是否能够正确打印出来。
2、在Main方法中,定义四个变量,用于暂存最大、最小值,以及他们的序号。通过for循环,找出数组中,最大的值和序号、最小的值和序号,存入上面定义的四个变量中。最终通过数组的下标给最大、最小值重新赋值,就将他们交换位置了。在原来最小值的下标位置赋值找出来的最大值。
3、例如: 5 4 3 2 1 你的代码在最小值替换那里已经变成了: 1 5 5 5 5 在最大值与最后一个数交换那里,用变量j记录最大值的位置,这个想法就蛮好的。不过,第二for循环那里问题是,找到一个为什么就要把值换掉呢?不是应该是查询完整个数组后,找到最大的是哪一个值,最后再进行替换。
4、printf(input the integer:); for (i = 0; i N; i++) scanf(%d, p + i);}void exchange(int* p) //将最小的数与第一个数对换,把最大的数与最后一个数对换。
相关问答
Q1: ...键盘输入,然后对数组a倒置(即数值前后交换),最后输出,求高手相助...
:输入时 也要有一个循环 你这样没有输入到a[8]里面去。
思路:先输入10个数赋值给数组a,接着倒序输出该数组即可。
int main (void){ printf(请输入数字,数字中间以空格隔开。
打开vs2010软件,如图所示。新建一个空项目。添加一个swap.c文件,如图所示。输入main函数的主体。定义三个变量,a和b是需要进行交换的变量,temp是一个中间变量。编写代码进行交换。使用printf函数,打印结果。
Q2: C语言,输入n个整数的数组,将最小值与第一个书交换,最大值与最后一个数...
你的程序没有问题,从某种意义上来说是正确的。问题是你举的例子是最特殊的,数组4321,最大值4的位置max=0,最小值1的位置min=3。
那个你交换了最小值之后,最大值的位置发生了变化。所以要先找最小值,交换最小值之后再去查找最大值,再交换最大值。
首先建立一个工程和.c文件。然后输入头文件和主函数。定义变量类型并初始化。输入一个正整数n(1n《10),再输入n个整数。将最小值与第一个数交换,最大值与最后一个数交换。剔除整数的个位数。最后得到输出的结果。编译,运行,得到最后的结果。
{ max = mun[i]; k = i; } } tmp = mun[0]; mun[0] = mun[j]; mun[j] = tmp; tmp = mun[n-1]; mun[n-1] = mun[k]; mun[k] = tmp;}//主函数。
这题目应该找到最大值和最小值所在的坐标位置,然后,在交换时,要考虑最大值是第一个数的情况。
最大值与最后一个交换,需要使用到max 和a[i],以及一个临时变量,你代码中使用的是max a[0] a[i],这里貌似有点问题。最小值与第一个交换,貌似你也是用的这3个变量。
关于将c语言中的数组数值前后调换和c语言数组换位的介绍到此就结束了,不知道你从中找到你需要的信息了吗 ?如果你还想了解更多这方面的信息,记得收藏关注本站。






