Mister-小方


私信TA

用户名:1104986125

访问量:88952

签 名:

如此英俊为哪般

等  级
排  名 4
经  验 15872
参赛次数 1
文章发表 68
年  龄 19
在职情况
学  校 大连交通大学
专  业 车辆工程

  自我简介:

解题思路:

1.主要看清楚题目的意思,我感觉不是要我们去用计算机的随机数,而是去掉重复的数并排序。

2.输入,排除不在范围内的数。

3.去除重复的数。

3.排序。

4.输出


实例代码:

#include <stdio.h> 
int main()
{
    int number=1,stu[1000],n;//number要采访的学生数量
    int i,j,temp;
    scanf("%d",&n);          //输入生成的随机数的个数
    for( i=0;i<n;i++)
    {
        scanf("%d",&stu[i]); //随机输入数字,1~1000;
        if(stu[i]<=0&&stu[i]>1000)//排除掉不是属于1到1000的
            i--;
    }  
    for(i=1;i<n;i++)         //取具有不同的数字 
    { 
        for( j=0;j<number;j++)//开始number为1,后面没成功存一个不重复的数,number++
            if(stu[j]==stu[i])//重复取1个
                break;
        if(j==number) //上面的判断执行完全,表示没有重复,就赋值
            stu[number++]=stu[i];
    }  
    printf("%d\n",number);
    for(i=1;i<number;i++)    //采用插入法排序
    {  
        temp=stu[i];
        for(j=i-1;j>=0&&temp<stu[j];j--) 
            stu[j+1]=stu[j];
        stu[j+1]=temp;
    }
    for(i=0;i<number;i++)
        printf("%d ",stu[i]);
    return 0; 
}

看看大家还有什么不懂的,请在下方评论区留言

 

0.0分

0 人评分

C语言网提供「C语言、C++、算法竞赛」在线课程,全部由资深研发工程师或ACM金牌大佬亲授课,更科学、全面的课程体系,以在线视频+在线评测的学习模式学习,学练同步,拒绝理论派,真正学会编程!还有奖学金等增值福利等你!

  评论区

写的很好,去重和那个输入的控制写得很好很好
2018-12-14 20:09:38 | |
他先用 计算机生成了N个1到1000之间的随机整数
输入是符合条件的不用判断233333
2017-08-02 20:09:44 | |
  • «
  • 1
  • »