C程序如何解答

[复制链接]
查看11 | 回复0 | 2009-1-30 06:28:38 | 显示全部楼层 |阅读模式
#include<stdio.h>main(){        int a[6],i,j,t;        printf("\\nPlease input 5 numbers.\\n");        for(i=0;i<=4;i++)        scanf("%d",&a);        for(i=0;i<=4;i++)                for(j=4;j!=i;j--)                {                        if(a<a[j])                        {                                t=a;                                a=a[j];                                a[j]=t;                        }                }        printf("\\nPlease input another number\\n\\n");        scanf("%d",&a[5]);        for(i=0;i<=5;i++)        {                if(a<a[5])                {                        t=a[5];                        for(j=5;j>i;j--)                        {                                a[j]=a[j-1];                        }                        a=t;                        i=6;                }        }        for(i=0;i<6;i++)        printf("%d ",a);}这个程序中if(a<a[5])                {                        t=a[5];                        for(j=5;j>i;j--)                        {                                a[j]=a[j-1];                        }                        a=t;                        i=6;这些代码如何理解?

                                                                                                首先通过for(i=0;i<=4;i++)                 scanf("%d",&a);         for(i=0;i<=4;i++)                 for(j=4;j!=i;j--)                 {                         if(a<a[j])                         {                                 t=a;                                 a=a[j];                                 a[j]=t;                         }                 } 得到数组a,它右5个(下标分别为0~4)从大到小顺序排列的整数组成。然后输入第6个数也就是a[5]输入以后进行遍例,通过代码for(i=0;i<=5;i++)         {                 if(a<a[5])                 {                         t=a[5];                         for(j=5;j>i;j--)                         {                                 a[j]=a[j-1];                         }                         a=t;                         i=6;                 }         } 将a[5]插入到原来的数组a中,并且使得数组a依然保持从大到小的顺序。所以代码if(a<a[5])                 {                         t=a[5];                         for(j=5;j>i;j--)                         {                                 a[j]=a[j-1];                         }                         a=t;                         i=6;                 } 的作用就是帮助a[5]插入数组a正确位置,使得数组a从大到小排列。                                       
提问者对答案的评价:
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

主题

0

回帖

4882万

积分

论坛元老

Rank: 8Rank: 8

积分
48824836
热门排行