| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 363 人关注过本帖
标题:求教一个去除重复数的问题
只看楼主 加入收藏
hexianqi1994
Rank: 1
等 级:新手上路
帖 子:50
专家分:0
注 册:2011-8-3
结帖率:86.96%
收藏
已结贴  问题点数:5 回复次数:3 
求教一个去除重复数的问题
以下是代码,目的就是要按输入数字的大小(即su),用rand函数随机输出a数组中的su个数,并且不能重复,我就卡在了不能重复哪里,怎么改代码都还是重复,求帮助
#include<stdio.h>
#include<stdlib.h>
#include<time.h>
#define M 10
void xuanqu(int a[],int changdu,int gesu);
int main(void)
{
    int a[M]={0,1,2,3,4,5,6,7,8,9};
    int chang;
    int su;
    char ch;


    while(1)
    {
    printf("please enter the su");
    scanf("%d",&su);
     getchar();
    xuanqu(a,M,su);
    printf("if you want to continue:");
    ch=getchar();
    if(ch=='y')
    continue;
    else
        break;

    }

return 0;
}

void xuanqu(const int a[],int changdu,int gesu)
{
    int i;
    int j;
    double zr;
    int inword=1;
    double ar[10];
srand(time(0));
    for(i=0;i<gesu;i++)
    {     zr=rand()%10;
        for(j=0;j<gesu;j++)
        {
            if(zr==a[j])
            {inword=0;
            break;}
            else
            continue;
        }
        if(inword=1)
        ar[j]=zr;
      printf("%3.2lf\n",zr);
    }
        
}
搜索更多相关主题的帖子: continue include please chang 
2011-08-27 20:31
laoyang103
Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19
来 自:内蒙古包头
等 级:贵宾
威 望:19
帖 子:3082
专家分:11056
注 册:2010-5-22
收藏
得分:0 
试试散列表

                                         
===========深入<----------------->浅出============
2011-08-27 20:39
hexianqi1994
Rank: 1
等 级:新手上路
帖 子:50
专家分:0
注 册:2011-8-3
收藏
得分:0 
表示一名初学者没听说过散数列
2011-08-27 20:49
QQ346957135
Rank: 7Rank: 7Rank: 7
等 级:黑侠
帖 子:148
专家分:658
注 册:2011-8-9
收藏
得分:5 
程序代码:
//以下是代码,目的就是要按输入数字的大小(即su),用rand函数随机输出a数组中的su个数,
//并且不能重复,我就卡在了不能重复哪里,怎么改代码都还是重复,求帮助
#include<stdio.h>
#include<stdlib.h>
#include<time.h>
#define M 10
void xuanqu(int a[],int changdu,int gesu);
int main(void)
{
    int a[M]={0,1,2,3,4,5,6,7,8,9};
    //int chang;
    int su;
    char ch;


    while(1)
    {
        printf("please enter the su");
        scanf("%d",&su);
        getchar();
        xuanqu(a,M,su);
        printf("if you want to continue:");
        ch=getchar();
        if(ch=='y')
            continue;
        else
            break;

    }
    return 0;
}

void xuanqu(int a[],int changdu,int gesu)
{
    int i;
    int j;
    int temp;
    int count=0;//随机数数组中随机数的个数
    int ar[10];//存储随机数
    int sign=0;//标记
    srand(time(0));
    for(i=0,j=0;i<gesu;i++)
    {     
        temp=rand()%10;//生成随机数
        if(count>=1)//数组中有随机数,则检查是否重复
        {
            for(j=0;j<count;j++)
            {
                if(temp==ar[j])
                {
                    sign=1;//检查出有重复的标记为1
                    break;
                }
            }
        }
        if(sign==0)//无重复,输出
        {
            ar[count++]=temp;
            printf("%d\n",temp);
        }
        else
        {
            gesu++;//有重复,则多生成一个随机数
            sign=0;//初始化标记
        }
    }
        
}

A real warrior never quits.
2011-08-27 21:21
快速回复:求教一个去除重复数的问题
数据加载中...
 
   



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

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