回 帖 发 新 帖 刷新版面

主题:写了个很简单很简单的小程序,但是不知道哪里错了,大大们帮我看看 谢了

#include <stdio.h>
void main()
{
 int a[11],num,i,j;
 for(i=0;i<10;i++)
 scanf("%d",&a[i]);
 printf("插入的数:");
 scanf("%d",&num);
 if(num>a[9])
 a[10]=num;
 else for(i=0;i<=9;i++)
 {
  if(num<a[i])
  for(j=9;j>=i;j--)
    a[j+1]=a[j];
  break;
 }
 for(i=0;i<11;i++)
 printf("%d ",a[i]);
 getch();
}


题目是, 在一数组中,插入一个数,然后全部输出。。。。。 帮我看看谢谢阿, 我刚刚才开始学的, 很急

回复列表 (共6个回复)

沙发

怎么没人帮我啊π_π

板凳


/* 标准文档模板 */

#include "Stdio.h"
#include "Conio.h"


/*此函数不能判断插入值位于数组两头的情况*/
int findnum(int arr[10],int a)
{
    int high=9,low=0;

    while(low<high)
    {
    if(a<arr[(high+low)/2])
        high=(high+low)/2;
    else if(a>arr[(high+low)/2])
        low=(high+low)/2;
    else return (high+low)/2;

    if((high-low)==1)
            return low;
    }
}

int main(void)
{
 /* 此处添加你自己的代码 */

    int a[11],i,j,temp,num,where;

    for(i=0;i<10;i++)
    {
    printf("input the %dth.num:",i+1);
    scanf("%d,%d,%d,%d,%d,%d,%d,%d,%d,%d",&a[i]);

    }

    /* 按升序排列*/
    for(i=0;i<10;i++)
    for(j=0;j<i;j++)
    {
    if(a[j]>a[i])
    {
    temp=a[j];
    a[j]=a[i];
    a[i]=temp;
    }
    }

    printf("after make the bed\n");
    for(i=0;i<10;i++)
    {

    printf("a[%d]=%d\t",i,a[i]);

    }

    printf("\n");

    /*插入一个数,并使大于它的数往后退一个数组下标*/


    puts("input the stick number:");
    scanf("%d",&num);

    /*讨论两个极限情况*/
    if(num<=a[0])
    {
    for(i=10;i>0;i--)
    {
    a[i]=a[i-1];
    }
    a[0]=num;
    }
    else if(num>=a[9])
    {
    a[10]=num;
    }
    else if(num>a[0]&&num<a[9])
    {
    where=findnum(a,num);
    printf("where=%d\n",where);
    for(i=10;i>where+1;i--)
    a[i]=a[i-1];
    a[where+1]=num;


    }
    for(i=0;i<11;i++)
    printf("a[%d]=%d\n",i,a[i]);

  getch();
  return 0;
}

3 楼

你的问题之前就没说清楚,应该是输入一个有序的数据,然后在数组中插入一个数据,并且是这些数据变得有序。

#include <stdio.h>
#include <conio.h>
void main()
{
    int a[11],num,i,j;
    for(i=0;i<10;i++)
    {
        scanf("%d",&a[i]);
        while(a[i]<a[i-1])
        {
            printf("你输入的数据不符合要求,请重新再输入");
            scanf("%d",&a[i]);
        }
    }
    printf("插入的数:");
    scanf("%d",&num);
        
    if(num>=a[9])
        a[10]=num;
    else
    {
        for(i=9;i>0;i--)
            if(num<a[i])
            {
                a[i+1]=a[i];
            }
            else
            {
                a[i+1]=num;
                break;
            }
    }
    for(i=0;i<11;i++)
        printf("%d ",a[i]);
    getch();
}


4 楼

[url=http://www.worldgodshop.com/]Supra Shoes[/url]   [url=http://www.worldgodshop.com/]Radii shoes[/url]  [url=http://www.worldgodshop.com/]Prada Shoes[/url]   [url=http://www.worldgodshop.com/]Jordan shoes[/url]  [url=http://www.worldgodshop.com/]Christian Louboutin shoes[/url] 
http://www.worldgodshop.com/

5 楼

LS各位,谢谢啦,

6 楼

[quote]LS各位,谢谢啦,[/quote]光谢不评分?

我来回复

您尚未登录,请登录后再回复。点此登录或注册