| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 419 人关注过本帖
标题:为何不能输出排序后的数组
只看楼主 加入收藏
彩彩
Rank: 2
等 级:论坛游民
帖 子:9
专家分:15
注 册:2015-4-20
结帖率:100%
收藏
已结贴  问题点数:20 回复次数:4 
为何不能输出排序后的数组
#include <stdlib.h>
#include <stdio.h>
#include<conio.h>
#include<math.h>
#include <time.h>
void array(int a[10]);
int main(void)
{
int i,j;
int r;
int str[10]={0,1,2,3,4,5,6,7,8,9};
int stu[10];
srand(time(NULL));

printf("Ten random numbers from 0 to 9\n\n");
for(i=0; i<10; i++)
{
         r=rand()%(10-i);

         printf("%d ",str[r]);
         stu[i]=str[r];
         for(j=r;j<10;j++)
                 str[j]=str[j+1];
}
printf("\nThe array is:");
for(j=0;j<10;j++)
{
   printf("%d ",stu[j]);
  }
 void array( int stu[10]);
  return 0;
}
void array(int a[10])
{
       int i,j,max,n;

       for(i=0;i<n;i++)
       {
           max=a[j];
           for(j=i;j<10;j++)
        {
           int temp;
            if (max<a[j+1])
                   {
                        temp=max;
                        max=a[j+1];
                        a[j+1]=temp;
                   }
          }

          }
        for(i=0;i<=10;i++)
       printf("the number is:%d\n",a[i]);

}
搜索更多相关主题的帖子: include numbers 
2015-04-20 21:39
纳兰伽香
Rank: 10Rank: 10Rank: 10
来 自:北京
等 级:贵宾
威 望:10
帖 子:426
专家分:1650
注 册:2015-4-5
收藏
得分:20 
选择排序写错了  自己好好检查

风回小院庭芜绿,柳眼春相续
2015-04-20 22:24
纳兰伽香
Rank: 10Rank: 10Rank: 10
来 自:北京
等 级:贵宾
威 望:10
帖 子:426
专家分:1650
注 册:2015-4-5
收藏
得分:0 
程序代码:
#include <stdlib.h>
#include <stdio.h>
#include<conio.h>
#include<math.h>
#include <time.h>
void array(int a[10]);
int main(void)
{
int i,j;
int r;
int str[10]={0,1,2,3,4,5,6,7,8,9};
int stu[10];
srand(time(NULL));

printf("Ten random numbers from 0 to 9\n\n");
for(i=0; i<10; i++)
{
         r=rand()%(10-i);

         printf("%d ",str[r]);
         stu[i]=str[r];
         for(j=r;j<10;j++)
           str[j]=str[j+1];
}
printf("\nThe array is:\n");

 array(stu);
  return 0;
}


void array(int a[10])
{
       int i,j,k;

       for(i=0;i<10;i++)
       {
           k=i;
           for(j=i+1;j<10;j++)
             {
                if (a[j]<a[k]) k=j;
             }
            if(i != k)
              {
                 int temp=a[i];
                 a[i]=a[k];
                  a[k]=temp;
           
             }

        }
        for(i=0;i<10;i++)
       printf("the number is:%d\n",a[i]);

}


风回小院庭芜绿,柳眼春相续
2015-04-20 22:32
彩彩
Rank: 2
等 级:论坛游民
帖 子:9
专家分:15
注 册:2015-4-20
收藏
得分:0 
回复 3楼 纳兰伽香
我将选择排序改为了冒泡排序,只改了这些怎么又不行了呢。

void array(int a[10])
{
       int i,j,temp ;

       for(i=0;i<10;i++)
           for(j=0;j<10-i;j++)
             {
                  if (a[j]>a[j+1])
                   {
                        temp=a[j];
                        a[j]=a[j+1];
                        a[j+1]=temp;
                   }
               }
    for(i=0;i<10;i++)
       printf("the number is:%d\n",a[i]);
}
2015-04-21 13:54
纳兰伽香
Rank: 10Rank: 10Rank: 10
来 自:北京
等 级:贵宾
威 望:10
帖 子:426
专家分:1650
注 册:2015-4-5
收藏
得分:0 
以下是引用彩彩在2015-4-21 13:54:59的发言:

我将选择排序改为了冒泡排序,只改了这些怎么又不行了呢。

void array(int a[10])
{
       int i,j,temp ;

       for(i=0;i<10;i++)
           for(j=0;j<10-i;j++)
             {
                  if (a[j]>a[j+1])
                   {
                        temp=a[j];
                        a[j]=a[j+1];
                        a[j+1]=temp;
                   }
               }
    for(i=0;i<10;i++)
       printf("the number is:%d\n",a);
}

明显的第一个for循环的大括号不配对。另外内循环改为j<10-i-1比较好

风回小院庭芜绿,柳眼春相续
2015-04-21 16:14
快速回复:为何不能输出排序后的数组
数据加载中...
 
   



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

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