明明的随机数 C语言

作者&投稿:原呢 (若有异议请与网页底部的电邮联系)
明明的随机数,c语言,我的程序有什么问题?没有用特别的函数~

#include int main() { int length = 1001; int a[length]; int i = 0; int n = 0; int m = 0; int x = 0; int c = 0; for (i = 0; i 0) { m++; } } printf("%d
", m); for (i = 1; i 0) { if (c > 0) { printf(" "); } printf("%d", i); c++; } } printf("
"); return 0;}

#include
#include

using namespace std;

int main(int argc, char *argv[])
{
int n,i,j,c;
int a[1000],b[1000];
cin>>n;
for(i=1;i<=n;i++)
{
cin>>a[i];
}
for(i=1;i<n;i++)
{
for(j=1;j<n;j++)
{
if (a[j]>a[j+1])
{
c=a[j];
a[j]=a[j+1];
a[j+1]=c;
}
}
}
for(i=1;i<=n;i++)
{
if (a[i]!=a[i-1])
{
b[0]++;
b[b[0]]=a[i];
}
}
cout<<b[0]<<" ";
for (i=1;i<=b[0];i++)
{
cout<<b[i]<<" ";
}
system("PAUSE");
return EXIT_SUCCESS;
}

如果是随机产生1到1000的数字,可以使用随机函数。同时你所写的程序有部分不符合题目的要求:1.随机产生数,且相同的数字只保留一个。2.对这些数字进行从小到大的顺序排列。程序如下:
#include <stdio.h>
#include <stdlib.h>
#include <time.h>
int main()
{
int cnt=1,stu[1000],n;//cnt要采访的学生数量
srand((unsigned int)time(NULL));
do{scanf("%d",&n),if(n<=0)printf("您输入的学生数量错误,请重新输入");)}while(n<=0);
int i,j,temp;
for( i=0;i<n;i++)
{stu[i]=rand() %1000; //随机产生1000个数字,1~1000;
if(stu[i]==0)i--;}

for(i=1;i<n;i++) //取具有不同的数字,即重复数字之取一个
{ for( j=0;j<cnt;j++)
if(stu[j]==stu[i])
break;
if(j==cnt) stu[cnt++]=stu[i];
}
printf("%d\n",cnt);
for(i=1;i<cnt;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<cnt;i++)
printf("%d ",stu[i]);
return 0;
}
2.若按照要求格式进行输入的话,则

#include <stdio.h>
int main()
{
int cnt=1,stu[1000],n;//cnt要采访的学生数量
int i,j,temp;
do{scanf("%d",&n),if(n<=0)printf("您输入的学生数量错误,请重新输入");)}while(n<=0);
for( i=0;i<n;i++)
{scanf("%d",&stu[i];) //随机输入数字,1~1000;
if(stu[i]<=0&&stu>1000)i--;}

for(i=1;i<n;i++) //取具有不同的数字,即重复数字之取一个
{ for( j=0;j<cnt;j++)
if(stu[j]==stu[i])
break;
if(j==cnt) stu[cnt++]=stu[i];
}
printf("%d\n",cnt);
for(i=1;i<cnt;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<cnt;i++)
printf("%d ",stu[i]);
return 0;
}

int main()
{
int i,j,n,sum=0,x[1001]={0};
scanf("%d",&n);
for (i=1;i<=n;i++){
scanf("%d",&j);
if (x[j]==0) sum++;
x[j]=1;
}
printf("%d\n",sum);
for (i=1;i<=1000;i++)
if (x[i]==1)
{
if(i!=1) printf(" ");
printf("%d",i);
}
getchar();
return 0;
}

//改成这样就好了

你的逻辑还不对哦,要想在输出时输出空格printf("%d ",i);%d后面加空格就可以了,或用格式修饰符,比如%-3d等


黎川县18892307413: 明明的随机数 C语言 -
谯淑贝克: 如果是随机产生1到1000的数字,可以使用随机函数.同时你所写的程序有部分不符合题目的要求:1.随机产生数,且相同的数字只保留一个.2.对这些数字进行从小到大的顺序排列.程序如下:#include <stdio.h> #include <stdlib.h>#include <...

黎川县18892307413: 明明的随机数
谯淑贝克: #include <stdio.h> int main() { int i, j, n, m, a[100]; scanf("%d", &n); for(i = 0; i < n; i++) scanf("%d", &a[i]); for(i = m = 1; i < n; i++) { for(j = 0; j < m; j++) if(a[i] == a[j]) break; if(j == m) a[m++] = a[i]; } for(i = 0; i < m - 1; i++) for(j = i + 1; j < m; j++) if(a[i] ...

黎川县18892307413: 如何用c语言产生一定范围内的随机数 -
谯淑贝克: C语言的获取随机数的函数为rand(), 可以获得一个非负整数的随机数.要调用rand需要引用头文件stdlib.h. 要让随机数限定在一个范围,可以采用模除加加法的方式. 要产生随机数r

黎川县18892307413: 怎样用c语言取一个随机数 -
谯淑贝克: 具体代码如下: #include <stdio.h> #include <stdlib.h> #include <time.h> //用到了time函数 int main() { int i,number; srand((unsigned) time(NULL)); //用时间做种,每次产生随机数不一样 for (i=0; i<50; i++) { number = rand() % 101; //产生0-100的...

黎川县18892307413: C语言随机数 -
谯淑贝克: #include <stdlib.h> #include <stdio.h> #include <time.h> /*用到了time函数,所以要有这个头文件*/ #define row 7 //可修改 #define line 10 //可修改 #define MAX 1000 //可修改 main( void) { int n[line][row]; int i,j; srand((unsigned) time(NULL)); /*播...

黎川县18892307413: 如何用C语言生成真正的随机数 -
谯淑贝克: 先使用srand函数以当前时间做一个种子,然后再随机 如:#include//用到了time函数#include #include int main() { int i, number; srand((unsigned int) time(NULL)); //用时间做种,每次产生随机数不一样 for (i=0; i { number = rand() % 12 + 1;//产生1-13的随机数 printf("%d\n", number); } return 0; }

黎川县18892307413: C语言生成随机数
谯淑贝克: #include<stdio.h> #include "stdlib.h" void main() { int i,x; for(i=1;i<10;i++) { x=rand()%2*1000; //生成0,和1,的随机数,然后乘1000就可以了 printf("%5d",x); } printf("\n"); }

黎川县18892307413: c语言如何产生在一定范围内的随机数 -
谯淑贝克: //---------------------------------------------------------------------------#include <stdio.h> #include <stdlib.h> #include <time.h> int main(void) {int a;int t=10,d=100;srand(time(NULL)); /*初始化随机数种子*/ a=rand()%(d-t)+t; /*生成一个[t,d)区间内的整数*/...

黎川县18892307413: 怎么用C语言生成随机数? -
谯淑贝克: 生成1~13的随机数,随机数序列中没有重复字数 #include <stdio.h> #include <stdlib.h> // 包含rand()函数说明 #include <time.h> #define N 13 void main( void ) { inti, j, num[N], tmp; //用当前时间种子重置随机数生成器,使每次运行生成不同的...

黎川县18892307413: 在C语言中如何产生10到100的随机数 -
谯淑贝克: 包含以下库 #include <stdlib.h> 先调用初始化随机数 void srand(unsigned seed); 再调用 rand() 得到随机数 rand()%91 + 10 就是 10 到100的随机数

本站内容来自于网友发表,不代表本站立场,仅表示其个人看法,不对其真实性、正确性、有效性作任何的担保
相关事宜请发邮件给我们
© 星空见康网