在数组中插入一数字,然后从大到小输出。但是结果总是不对,求大神指导

来源:互联网 发布:计算机服装排版软件 编辑:程序博客网 时间:2024/06/05 16:52

 代码如下:

#include<stdio.h>int main(){    int i,j,n,s;    static int a[11]={127,3,6,28,54,68,87,105,162,18};    for(i=0;i<11;i++)    {            for(j=0;j<11-i;j++)        {            if(a[j]<a[j+1])            {                int max=a[j+1];                a[j+1]=a[j];                a[j]=max;            }        }    }    for(i=0;i<11;i++)        printf("%-5d",a[i]);    printf("\nenter a number:");    scanf("%d",&n);    int t;    for(i=0;i<11;i++)    {        if(n>a[i])  //循环判断数组中第一个比你输入的数值小的数         {            for(t=10;t>=i;t--) //把你判断到的第i个元素以后的元素向后移一位(这是重点)             {                a[t]=a[t-1];            }            a[i]=n;//把后面的元素完成移位后把输入的数值写入i元素             break; //退出判断大小的循环         }                }    for(i=0;i<11;i++)        printf("%-5d",a[i]);    return 0;}


0 0
原创粉丝点击