c语言冒泡排序函数加两数交换函数嵌套

"c语言字符串交换函数"的糗事
你可能感兴趣:
糗事百科为大家收集了很多的c语言字符串交换函数的糗事,各种关于c语言字符串交换函数的爆笑经历、尴尬时刻和开心视频,想持续关注c语言字符串交换函数的糗事就收藏本页吧.
扫码下载糗事百科app16:38 提问
菜鸟学C语言,冒泡排序交换位置不理解,求大神解答
int main()
int array[10] = { 56, 78, 2, 9, 98, 23, 56, 89, 74, 122 };
int temp = 0;
for (i = 0; i & 10; i++)
for (j = 1; j &10 - j++)
if (array[j - 1]&array[j])
temp = array[j];
array[j] = array[j-1];
array[j-1] =
/*if (array[j] & array[j + 1])
temp = array[j+1];
array[j+1] = array[j];
array[j] =
两种交换位置的方法感觉一样,为什么有一种执行的是错误的
按赞数排序
for (j = 1
这里j从1开始,用if (array[j] & array[j + 1])是没有对array[0]进行比较处理
注释掉的那种变量j从0开始?
i=0,j最大就是9,j+1就是10了,明显超出了
你可以尝试将数组的个数减小到3进行调试,这样理解比较快!!
一.冒泡排序的基本思路是:每次都将相邻的两个数比较,将小的调到前头。
对于n个数,需要比较n-1趟,在第1趟中要进行n-1次的两两比较,而在第j趟时,需要进行n-j次两两比较。
1.代码分析:
 12 for (i = 0; i & 9; i++)
for (j = 1; j
if (a[j - 1]&a[j])
temp = a[j];
a[j] = a[j-1];
这里最为关键的地方在于if判断语句中的数组的下标:
   if(a[j-1] & a[j])
因为数组的下标是从0开始。j初始值为1,所以该语句的功能是判断数组中的第一个元素与第二个元素的大小。若把该if判断语句换为了if(a[j] & a[j+])之后,
相当于忽略了数组中的第一个元素,直接比较数组中的第二个元素和第三个元素,显然是要出错的。
![图片说明](https://img-ask.csdn.net/upload//_918539.png)
![图片说明](https://img-ask.csdn.net/upload//_662420.png)
准确详细的回答,更有利于被提问者采纳,从而获得C币。复制、灌水、广告等回答会被删除,是时候展现真正的技术了!
其他相关推荐c语言 .用指针编 两个字符串 互换的函数.谢谢_百度知道
c语言 .用指针编 两个字符串 互换的函数.谢谢
如题.我编了n久 就是有问题..请各位大大 给我开开眼咯~
忘记说了 一楼的我也编的出..就是要不能用strcpy的~~~~我就是尝试把strcpy改掉 但是不成功,,指针的地址每次变换前感觉要归为原位的,就这里卡住;饿麻烦能在改下 ,啊??谢谢
我有更好的答案
void swap(char **a,char **b){ char *c; c=*a; *a=*b; *b=c;}void main(void){ char *a,*b;
strcpy(a,&aaaa&);
strcpy(b,&bbbb&); swap(&a,&b);}
采纳率:27%
/*这个最简单,效率也高,不过不能操作静态字符数组*/void strswap(char **pStr1, char **pStr2){char *temp = *pStr1;*pStr1 = *pStr2;*pStr2 =}/*更通用的应该是这样写*/void strswap(char* str1, char* str2){ int i = 0; bool bStr1End = false, bStr2End = while(
!(bStr1End = (bStr1End || str1[i] == '\0'))
|| !(bStr2End = (bStr2End ||str2[i] == '\0'))) {
temp = str1[i];
str1[i] = str2[i];
本回答被提问者采纳
#include &stdio.h&#include &string.h&void main(){ char *s,*t,* printf(&Please input 2 string:\n&); gets(s); gets(t); temp=s; s=t; t= printf(&The result is:\n&); puts(s); puts(t);}假如硬要把s和t声明为数组,就会报错.因为数组地址是一个指针常量,不是指针变量,一旦确定就不能修改.指针和数组在某些情况下是等价的,但数组没有指针灵活.
为您推荐:
其他类似问题
您可能关注的内容
c语言的相关知识
换一换
回答问题,赢新手礼包
个人、企业类
违法有害信息,请在下方选择后提交
色情、暴力
我们会通过消息、邮箱等方式尽快将举报结果通知您。"c语言中交换值"的糗事
你可能感兴趣:
糗事百科为大家收集了很多的c语言中交换值的糗事,各种关于c语言中交换值的爆笑经历、尴尬时刻和开心视频,想持续关注c语言中交换值的糗事就收藏本页吧.
扫码下载糗事百科app

我要回帖

更多关于 c语言交换函数 的文章

 

随机推荐