C语言的困惑

我学到冒泡排序法了,但是总是不能自己理解原理,好像实在刻意地背诵似的,怎么办?是谁能帮我理解一下,用最通俗的语言说一下,谢了哈!

第1个回答  2011-12-27
一排苹果,要从小到大排
从首个开始往后,两个对比,大的继续跟下一个比,比到最后就找出最大的
回到首个,再次两个对比一遍,就找出第2大苹果
再回到首个,再次两个对比一遍,就找出第3大苹果。
....
直到剩2个,回到首个,再次两两比一遍,就找出2个中较大的苹果。
这样就从小到大排了,大的往前冒,所以叫冒泡
第2个回答  2011-12-27
跟数学的排列组合很像的。比如说10个数比较
for(i=0;i<10;i++)// i=0 把第一个数拿初来
{
for(j=0;j<10-i-1;j++)//拿剩下的9个数与其比较,选出最大或最小的数

t=a;
a=b;
b=t;
}//交换,之后 , i=1,j=10-1-1=8,就是除去选出的最大或最小的数后 拿剩下9个数中的第一个数与其余8个数比较,以此类推
}
仅供参考,其实记住格式多用用就明白了 或者找些题看看其用法本回答被提问者采纳
第3个回答  2011-12-27
可以看看网上的动画。http://www.fjydxx.com/flash/Show.Asp?Id=10402

大一新生,最近在学C语言,非常痛苦,怎么办? - 知乎
学习C语言的初学者经常会遇到困难,你所描述的经历我深有体会。入门阶段,C语言的特性,如指针、内存管理等,确实让人感到困惑。你可能对诸如“1\/3.0,1\/3不一样”这样的设计原理感到困惑,以及如何正确使用`scanf`和`gets`函数,甚至理解数组索引的规则等。这些都可能是让你感到痛苦的原因。解决之道...

我对C语言的学习有许多困惑
第一:C语言语法结构很简洁精妙,写出的程序也很高效,很便于描述算法,大多数的程序员愿意使用C语言去描述算法本身,所以,如果你想在程序设计方面有所建树,就必须去学它。第二:C语言能够让你深入系统底层,你知道的操作系统,哪一个不是C语言写的?所有的indows, Unix, Linux, Mac, os\/2,没有...

c语言不会写程序怎么办
C语言入门看似简单,但深入掌握却并非易事。如果你在编写C语言程序时感到困惑,可能是因为你对C语言编程不够熟练,无法将实际问题转化为程序代码。此时,你需要通过多写代码、多练习,逐渐熟悉和掌握C语言的编程规则。另一种可能是你对数据结构和算法相关知识掌握不足。这时,你需要在C语言基础上,进一步...

刚上大一,c语言压根听不懂怎么办?
记得刚接触C语言时,对于一些基础概念,如`#include "..."`的用途,主函数`int main()`内为何要写`return 0;`等,都感到困惑。尽管课堂上努力听讲,但由于缺乏基础铺垫,理解起来依旧吃力。更让人担忧的是,这种不理解可能会影响到后续考试,让人感到压力巨大。转折点发生在课堂之外。一次,班级里几...

C语言由i++和++i引起一道问题的思考,大部分人会做错
当面对如下的编程问题时,许多人会陷入困惑:printf("%d %d", i++, ++i);这道问题的关键在于理解变量 i 的变化顺序与值的输出结果。几乎所有 C 语言教材都解释了 i++ 和 ++i 的区别:前者先使用变量的值然后使其自增,后者则先自增后使用变量的值。但问题在于,这道题的真正挑战在于如何...

我学习的是java语言,现在想去学习c语言,会不会很难或者说要入门大概需...
Java在某种程度上提供了更高级的抽象,使得编程更加便捷,但这也可能让你在面对C语言时产生困惑。Java的经验可以作为参考,上层的编程思路可以保留,但在语言层面,你需要从头开始学习。C语言的一些特性,如异常古老的设定、类型格式、函数指针等,可能会让你感到陌生。此外,C语言在规则设计上更加注重性能,...

C语言编程中的问题
C语言初学者遇到最多的困惑是:上课也能听懂,书上的例题也能看明白,可是到自己动手做编程时,却不知道如何下手。发生这种现象的原因是:所谓的看懂听明白,只是很肤浅的语法知识,而没有深刻地理解C语言的语句的执行过程(或流程)。 计算机是按照人的指令(编写的程序)去执行的,如果不知道这些C语句在计算机中是如何执行...

初学C语言的困惑,求1到100素数的合
void main(){ int i,j,s=0;for(i=2;i<=100;i++)\/\/从2--100中筛选素数 { for(j=2;j<=i-1;j++)\/\/判断方法,用要判断的数 除以 从 2到要判断的数,如果能被某个数整除即取余为0;\/\/即这个数不是素数,j的结束条件为j>i-1;if(i%j==0)break;\/\/取余为0了,说明i不是...

c十十语言c语言语法觉的好困惑?
语法本身只是一种规则,只以这个为基础去考虑应该会好很多

比较简单的C语言问题,有些困惑
m++>5 优先级是先比较再++ 如果是++m>5 那就是先自增1然后再比较 对于这个题 很明显if不成立执行else 执行else的时候 m++已经执行完毕 这时候m的值是6 所以prinf("%d\\n",m--);结果是6 换个理解方式 你把else后面的那句话换成prinf("hello");结果是输出hello 另外 初始化并赋值 ...

相似回答