标题:任意输入10个数,按从小到大排列,并输出。请高手来看看!!!!!!!!!!!!!!!
只看楼主
defhvk
Rank: 2
等 级:论坛游民
帖 子:62
专家分:29
注 册:2011-4-8
结帖率:93.33%
已结贴  问题点数:10 回复次数:18 
任意输入10个数,按从小到大排列,并输出。请高手来看看!!!!!!!!!!!!!!!
#include<stdio.h>
void x(int a[]);
main()
{
  int a[10],b,c=0;
  printf("请输入10个数:");
  for (b=0;b<=9;b++)
  {
      if (c<=9)
      {
    scanf("%d",&a[b]);
        c++;
      }
  }
  x(a);
}

void x(int a[])
{
   int b,c=0,d=1,e;
   while (d==1)
 {
   for (b=0;b<=9;b++)
   {
     if (a[b]>a[b+1])
     {
         c=a[b];
         a[b]=a[b+1];
         a[b+1]=c;
     }
     if (a[0]<a[1]&&a[1]<a[2])
     {
      if (a[2]<a[3]&&a[3]<a[4])
      {
         if (a[4]<a[5]&&a[5]<a[6])
         {
            if (a[6]<a[7]&&a[7]<a[8])
            {
               if (a[8]<a[9])
               {
                  for (e=0;e<=9;e++)
                      printf("%d",a[e]);
                  goto xp;
               }
            }
         }
      }
     }
   }
  }
xp:;
}

这个程序能正常编译,但,运行进提示:终止,重试,忽略,三个按钮。??请高手指教!
搜索更多相关主题的帖子: include while 
2011-04-11 11:14
defhvk
Rank: 2
等 级:论坛游民
帖 子:62
专家分:29
注 册:2011-4-8
得分:0 
能复制去帮运行下找错误吗?深深感谢!
2011-04-11 11:22
qq1023569223
Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19
来 自:湖南科技大学
等 级:贵宾
威 望:26
帖 子:2753
专家分:13404
注 册:2010-12-22
得分:2 
#include<stdio.h>
void sort(int a[]);
int main()
{   
  int a[10],b;
  printf("请输入10个数:\n");
  for (b=0;b<=9;b++)
  {     scanf("%d",&a[b]);       }
  sort(a);
  return 1;
}
void sort(int a[])
{
   int i,j,t;
   for(i=0;i<9;i++)
      for(j=i+1;j<10;j++)
    {
      if(a[i]>a[j])
     {
      t=a[i];
      a[i]=a[j];
      a[j]=t;
      }
    }
  for(i=0;i<10;i++)
    printf("%d\t",a[i]);
}

[ 本帖最后由 qq1023569223 于 2011-4-11 23:05 编辑 ]

   唯实惟新 至诚致志
2011-04-11 11:47
w19890717
Rank: 1
等 级:新手上路
帖 子:21
专家分:5
注 册:2011-4-9
得分:2 
回复 2楼 defhvk
呵呵,我帮你运行一下吧
2011-04-11 12:24
ansic
Rank: 14Rank: 14Rank: 14Rank: 14
来 自:恍惚窈冥
等 级:城市猎人
帖 子:1543
专家分:5367
注 册:2011-2-15
得分:2 
3L正解!

善人者,不善人之师;不善人者,善人之资。不贵其师,不爱其资,虽智大迷。
2011-04-11 12:27
w19890717
Rank: 1
等 级:新手上路
帖 子:21
专家分:5
注 册:2011-4-9
得分:0 
回复 3楼 qq1023569223
交个朋友吧,我初人计算机,真心想交朋友,指点迷津
2011-04-11 12:27
defhvk
Rank: 2
等 级:论坛游民
帖 子:62
专家分:29
注 册:2011-4-8
得分:0 
3楼的答案不完全正确
2011-04-11 12:55
defhvk
Rank: 2
等 级:论坛游民
帖 子:62
专家分:29
注 册:2011-4-8
得分:0 
你输入10个数就知道了,3楼不正确。
2011-04-11 12:57
张敏樱木花道
Rank: 3Rank: 3
等 级:论坛游侠
帖 子:139
专家分:137
注 册:2011-3-26
得分:2 
#include<stdio.h>
void x(int a[]);
main()
{
  int a[10],b,c=0;
  printf("请输入10个数:");
  for (b=0;b<=9;b++)  /*给数组赋值*/
  {
      /*if (c<=9)*/  /*这句可以不要,因为b<9已经可以结束*/
      {
    scanf("%d",&a[b]);
        /*c++;  */
      }
  }
  x(a);
}

void x(int a[])
{
   int b,c=0,d=1,e;
   while (d==1)
{
   for (b=0;b<=9;b++)
   {
     if (a[b]>a[b+1]) /*这里应该单独编写一个用于交换函数,从而使结构清晰*/
     {
         c=a[b];
         a[b]=a[b+1];
         a[b+1]=c;
     }
     if (a[0]<a[1]&&a[1]<a[2])
     {
      if (a[2]<a[3]&&a[3]<a[4])
      {
         if (a[4]<a[5]&&a[5]<a[6])
         {
            if (a[6]<a[7]&&a[7]<a[8])
            {
               if (a[8]<a[9])          /*你的想法是好的,可是这里这么多if语句条件太苛刻了
               使得分析算法比较麻烦*/
               {
                  for (e=0;e<=9;e++)
                      printf("%d",a[e]);
                  goto xp;
               }
            }
         }
      }
     }
   }
  }
xp:;
}
正确答案三楼可以供参考。
以前我也写过你这样的程序,兄弟,加油啊!
以后有问题就发帖,大家会帮你的。
2011-04-11 13:00
张敏樱木花道
Rank: 3Rank: 3
等 级:论坛游侠
帖 子:139
专家分:137
注 册:2011-3-26
得分:0 
回复 3楼 qq1023569223
呵呵,好像掉了一句比较大小啊……
2011-04-11 13:06



参与讨论请移步原网站贴子:https://bbs.bccn.net/thread-336262-1-1.html




关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.622154 second(s), 7 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved