C语言中数组的问题...

来源:百度知道 编辑:UC知道 时间:2024/09/23 13:33:25
我是自学的C语言,没有人带所以请高手详细指点一下,感激不尽!今天刚看到数组这一章就有了下面的这个编程问题:
用起泡法对10个数排序(由小到大)
下面是我抄下来的似懂非懂哎...初学都是这样的吗?= =!帮忙解答我的疑问谢谢...
#include<stdio.h>
void main()
{
int a[10];
int i,j,t;
printf("输入十个数:\n");
for(i=0;i<10;i++)/*高手请详细讲一下这一句的作用因为我今天刚学的数组这一章不理解这一句前面都没有见到这样用的?*/
scanf("%d",&a[i]);
printf("\n");
for(j=0;j<9;j++)/*不太理解请讲解一下(进行9次循环,实现9趟比较)书上讲的*/
for(i=0;i<9-j;i++)/*不太理解请讲解一下(在每一趟中进行9-i次比较)书上讲的*/
if(a[i]>a[i+1])
{
t=a[i];
a[i]=a[i+1];
a[i+1]=t;
}
printf("排序后为:\n");
for(i=0;i<10;i++)/*这一句和开头的那一句是一个意思吗?*/
printf("%d ",a[i]);
printf("\n");
}
晕~我是自学,对你们讲的含蓄的东西不理解 = =!

冒泡法排序么
1和2.3.4.5...比大小,然后2和3.4.5.6...比大小
for(j=0;j<9;j++)实现第1次,第二次...
for(i=0;i<9-j;i++)实现每一次里比大小
for(i=0;i<10;i++)这两句功能相似,前面控制依次输入,后面控制依次输出

第一个 循环对每个数组元素赋值。
第二第三个不太理解, 循环排序,
第四个, 循环输出整个数组。

for(a语句;b语句;c语句)
{
}
for循环中的3个语句分别是:a语句给变量赋初值,b语句定义循环条件,c语句定义每次循环后循环变量的变化;执行顺序是a->b->{}->c->b->{}->c......
for(i=0;i<10;i++)执行10次循环,没有“{}”所以循环语句仅包括 “scanf("%d",&a[i]);”
第一个for(i=0;i<10;i++)的作用是输入那十个数的值;最后一个for(i=0;i<10;i++)则是输出排序后的值

如果对起泡排序法不理解,可以参阅百度百科的“冒泡排序”

书上讲的没错,建议去买本谭浩强的 C语言书 来看