| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 616 人关注过本帖
标题:[求助]关于 数列 的排列问题
只看楼主 加入收藏
cl114442
Rank: 1
等 级:新手上路
帖 子:8
专家分:0
注 册:2008-11-10
收藏
 问题点数:0 回复次数:8 
[求助]关于 数列 的排列问题
从1到1000随即抽取 100个数字````然后把着100个数字从大到小   以及从小到大的顺序排列的编程`````谢谢各位大大了````
搜索更多相关主题的帖子: 排列 
2008-11-30 13:35
cl114442
Rank: 1
等 级:新手上路
帖 子:8
专家分:0
注 册:2008-11-10
收藏
得分:0 
自己顶啊````都看不到了  ``````
2008-11-30 16:37
songsfly
Rank: 1
来 自:厦门大学
等 级:新手上路
帖 子:44
专家分:0
注 册:2008-11-25
收藏
得分:0 
这里只写了从大到小的排列程序,另一个原理相同。请楼主自己思考。
程序代码:
#include "stdio.h"
void main()
{
    int i,n,t,a[100];
    printf("请输入1~1000中的随机数字100个\n");
    for(n=0;n<100;n++)
        scanf("%d",&a[n]);
    
    for(i=1;i<=99;i++)
        for(n=1;n<=99;n++)
            if(a[n]>a[n-1]){t=a[n];a[n]=a[n-1];a[n-1]=t;}//交换两个数的位置
    for(i=0;i<100;i++)
        printf("%d ",a[i]);
}
2008-11-30 17:06
cl114442
Rank: 1
等 级:新手上路
帖 子:8
专家分:0
注 册:2008-11-10
收藏
得分:0 
恩谢谢```但是并不是 自己输入数字```而是电脑自动随即生成的数字`````
2008-11-30 17:25
songsfly
Rank: 1
来 自:厦门大学
等 级:新手上路
帖 子:44
专家分:0
注 册:2008-11-25
收藏
得分:0 
让电脑随机……不懂,现在能做的只是让电脑按一定规律运行……

yixiong89921.blog./
2008-11-30 17:32
闰土
Rank: 1
等 级:新手上路
帖 子:5
专家分:0
注 册:2008-11-21
收藏
得分:0 
这段程序是不是用冒泡法排序啊
2008-11-30 18:45
dubukuangye
Rank: 1
等 级:新手上路
威 望:2
帖 子:155
专家分:3
注 册:2008-11-11
收藏
得分:0 
回复 第5楼 songsfly 的帖子
#include<stdio.h>
#include<stdlib.h>
#include<time.h>
#include<conio.h>
void main()
{
    int a[10],i=0,*ch=a,j;
    srand(time(NULL));//产生随机数
    while(i<10)
   {
    *ch=rand()%10+1;
    ch++;
    i++;
   }



for(i=i-1;i>=0;i--)//冒泡排序
  for(j=9;j>=10-i;j--)
    if(a[j]>a[j-1]) a[j]^=a[j-1]^=a[j]^=a[j-1];

   printf("从大到小的顺序为:\n");
    for(i=0;i<10;i++)
      printf("%d",a[i]);
       printf(\n");
      getch();
}


这是产生1~10的数然后排序

与其离开她为了过的更好,不如抓住她,自己努力让她过的更好
2008-11-30 19:00
Tchong
Rank: 1
等 级:新手上路
帖 子:117
专家分:0
注 册:2008-10-17
收藏
得分:0 
#include "stdio.h"
#include<stdlib.h>
#include<time.h>

void main()
{
    int i,n,t,a[100];
   
srand(time(NULL));

printf("请输入1~1000中的随机数字100个\n");
    for(n=0;n<100;n++){
       a[n]=1+rand()%1000;
        printf("%d ",a[n]);
        if(n%5==0){
         printf("\n");}
}
       printf("\n\n\n");
   
    for(i=1;i<=99;i++)
        for(n=1;n<=99;n++)
            if(a[n]>a[n-1]){t=a[n];a[n]=a[n-1];a[n-1]=t;}
    for(i=0;i<100;i++)
        printf("%d ",a[i]);
}
2008-11-30 22:04
Tchong
Rank: 1
等 级:新手上路
帖 子:117
专家分:0
注 册:2008-10-17
收藏
得分:0 
上面的应该可以做成一个开关形式的,只要输入1,就代表从大到小排列;如果输入2;就执行从小到大的排列,想多一点可能有更多有趣的事情
2008-11-30 22:08
快速回复:[求助]关于 数列 的排列问题
数据加载中...
 
   



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

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