请高手来拿指教!
要求输出数字从小到大排列
用C编程输入任意1~33数字中的10个使其输出任意不重复的6个随机数字!
答案:3 悬赏:60 手机版
解决时间 2021-02-07 10:06
- 提问者网友:欲劫无渡
- 2021-02-06 11:26
最佳答案
- 五星知识达人网友:一叶十三刺
- 2021-02-06 12:51
#include<stdio.h>
#include<stdlib.h>
int produce(int a[10])
{int i,j,k;
randomize();
for(i=0;i<10;i++) a[i]=random(60000)%33+1;
for(i=0;i<9;i++)
{k=i;
for(j=i+1;j<10;j++)
if(a[i]==a[j]){k=j;break;}
if(k>i)break;}
if(k>i)return 0;//若有重复元素,则返回假
else return 1;
}
void sort(int a[])
{int i,j,k,t;
for(i=0;i<9;i++)
{k=i;
for(j=i+1;j<10;j++)
if(a[k]>a[j])k=j;
if(k>i){t=a[i];a[i]=a[k];a[k]=t;}
}
}
void main()
{
int samp[10],i;
while(!produce(samp));
sort(samp);
for(i=0;i<10;i++)
printf("%4d",samp[i]);
}
#include<stdlib.h>
int produce(int a[10])
{int i,j,k;
randomize();
for(i=0;i<10;i++) a[i]=random(60000)%33+1;
for(i=0;i<9;i++)
{k=i;
for(j=i+1;j<10;j++)
if(a[i]==a[j]){k=j;break;}
if(k>i)break;}
if(k>i)return 0;//若有重复元素,则返回假
else return 1;
}
void sort(int a[])
{int i,j,k,t;
for(i=0;i<9;i++)
{k=i;
for(j=i+1;j<10;j++)
if(a[k]>a[j])k=j;
if(k>i){t=a[i];a[i]=a[k];a[k]=t;}
}
}
void main()
{
int samp[10],i;
while(!produce(samp));
sort(samp);
for(i=0;i<10;i++)
printf("%4d",samp[i]);
}
全部回答
- 1楼网友:平生事
- 2021-02-06 14:06
正解如下,经过编译可以通过:
#include<stdio.h>
#include<stdlib.h>
int produce(int a[10])
{int i,j,k;
randomize();
for(i=0;i<10;i++) a[i]=random(60000)%33+1;
for(i=0;i<9;i++)
{k=i;
for(j=i+1;j<10;j++)
if(a[i]==a[j]){k=j;break;}
if(k>i)break;}
if(k>i)return 0;//若有重复元素,则返回假
else return 1;
}
void sort(int a[])
{int i,j,k,t;
for(i=0;i<9;i++)
{k=i;
for(j=i+1;j<10;j++)
if(a[k]>a[j])k=j;
if(k>i){t=a[i];a[i]=a[k];a[k]=t;}
}
}
void main()
{
int samp[10],i;
while(!produce(samp));
sort(samp);
for(i=0;i<10;i++)
printf("%4d",samp[i]);
}
- 2楼网友:低音帝王
- 2021-02-06 13:20
正解如下,经过编译可以通过:
#include
#include
int produce(int a[10])
{int i,j,k;
randomize();
for(i=0;i<10;i++) a[i]=random(60000)%33+1;
for(i=0;i<9;i++)
{k=i;
for(j=i+1;j<10;j++)
if(a[i]==a[j]){k=j;break;}
if(k>i)break;}
if(k>i)return 0;//若有重复元素,则返回假
else return 1;
}
void sort(int a[])
{int i,j,k,t;
for(i=0;i<9;i++)
{k=i;
for(j=i+1;j<10;j++)
if(a[k]>a[j])k=j;
if(k>i){t=a[i];a[i]=a[k];a[k]=t;}
}
}
void main()
{
int samp[10],i;
while(
我要举报
如以上回答内容为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
点此我要举报以上问答信息
大家都在看
推荐资讯