① c语言,大家帮我看看这个程序,为啥输出的是一大堆没有规律的数字呢
这是因为你定义的数组a[2][3]没初始化,你可以加一个初始值:
int
a[2][3]={0},(*p)[3]=a,i,j;
这样就没问题了。
至于没初始化出现的问题数字,这是随机的,反正不是你赋值的,程序里从哪里取出来的,不可预测。
② C语言中随机数是如何产生的呢
一般是伪随机数,通过一个种子来生成伪随机数序列,然后从序列里取数来当作随机数
当然,一般应用可以使用一些随机事件,如某件事发生的时刻,ad器件上读到的噪声电压之类的
对伪随机数种子进行随机化,这样再得到的随机数就比较没有规律了
③ C语言 sprintf函数,如何生成不规则的随机字符串
没有明白你的本意是什么,做了一个,你看看吧,不对接着追问
#include"stdio.h"
#include"stdlib.h"
#include"time.h"
intmain()
{
inta;
srand((unsigned)time(NULL));
a=rand()%1000;
printf("随机数%0d ",a);
}
④ C语言:如何产生不重复的随机数字
数学意义上的随机数在计算机上已被证明不可能实现。通常的随机数是使用随机数发生器在一个有限大的线性空间里取一个数。“随机”甚至不能保证数字的出现是无规律的。
我觉得你的程序逻辑似乎不对,看程序a的值应该来自数组num[],假如在第一个for循环中生成的x值为1,第二次仍然生成1,程序将陷入死循环,又或者a是某个特定值,只是你应该给出说明。
使用系统时间作为随机数发生器是常见的选择,参考下面的随机输出1个1~99数字的程序:
#include <stdlib.h>
#include <stdio.h>
#include <time.h>
int main(void)
{
int i;
time_t t;
srand((unsigned) time(&t));
printf("Ten random numbers from 0 to 99\n\n");
for(i=0; i<10; i++)
printf("%d\n", rand() % 100);
return 0;
}
⑤ C语言中如何给一个数组输入一组总数未知的数
#include<stdio.h>
#include<ctype.h>
int main()
{
int a[1000];
char c;
int i=0;
int n=0;
while((c=getchar())!=' ')
{
if(isdigit(c))
{
ungetc(c,stdin);//将c送回输入流
scanf("%d",&a[n++]);
}
}
for(i=0;i<n;i++)
{
printf("%d",a<i>);
}
return 0;
}
(5)c语言怎么出现一组没有规律的数扩展阅读:
printf()函数的用法
1.printf()函数的调用格式为:printf("<格式化字符串>",<参量表>);
//__stdcall
int __cdecl printf(const char*p,...);
...可变参数
printf在打印浮点数,不论原来是双精度还是单精度,都变为双精度(8字节)
打印1字节(char)2字节(short)4字节(int)==>4字节,除了long long(8字节)
void main()
{
int a=10;
folat ft=12.25f;
printf("%d%d ",a,ft);
}
%d格式控制符--不具有强转能力
A格式化字符串包括两部分内容:
一部分是正常字符,这些字符将按原样输出;
另一部分是格式化规定字符,以"%"开始,后跟一个或几个规定字符,用来确定输出内容格式。
1.d/i有符号十进制形式输出(正数不输出符号)
2.u无符号十进制形式输出
3.o无符号八进制形式输出(不输出前缀0)
4.x无符号十六进制形式输出(不输出前缀Ox),并以小写abcdef表示。
5.X无符号十六进制形式输出(不输出前缀Ox),并以大写ABCDEF表示。
6.c输出单个字符
7.s输出字符串
8.f以小数形式输出单、双精度实数
9.E/e用科学计数法表示浮点数
10.G/g以%f或%e中较短的输出宽度输出单、双精度实数
+++++++++
void main()
{
long long x=0x12345678901357;
printf("%x ",x);//=>78 90 13 57
printf("%lx ",x);//=>78 90 13 57
printf("%llx ",x);//=>12345678901357
}
B参量表
需要输出的一系列参数,其个数必须与格式化字符串所说明的输出参数个数一样多,各参数之间用","分开,且顺序一一对应
例题:
void main()
{
char a=128;
printf("%d ",a);//=>-128
printf("%x ",a);//=>ffff ff80
}
当printf调用,a给可变参数,自然而然扩展为4字节,a是有符号数,扩展的时候加符号位
1111 1111 1111 1111 1111 1000 0000=>ffff ff80
unsigned char a=128;
printf("%x ",a);==>80
⑥ C语言中生成一组各不相同的不重复的随机数
#include<stdio.h>
#include<stdlib.h>
#include<time.h>
intmain()
{
int*a,n,i,j;
scanf("%d",&n);
a=(int*)calloc(n,sizeof(int));
srand(time(NULL));
for(i=0;i<n;i++)
{
loop:
a[i]=rand()%n+1;
for(j=0;j<i;j++)
if(a[i]==a[j])gotoloop;
}
for(i=0;i<n;i++)printf("%d",a[i]);
printf(" ");
free(a);
return0;
}
⑦ C语言中怎样生成随机数
C语言生成
随机数
的
函数
为rand。
1
声明:
int
rand(void);
2
头文件:
stdlib.h
3
功能:
获取一个非负随机
数值
。
4
注意事项:
a)
rand是
伪随机数
,由一个种子计算得来。
如果种子相同,每次启动
程序
,获取到的
随机序列
是固定的。
可以通过srand设置当前时间作为种子,使随机效果更好。
srand(time(NULL));
b)
要获取[m,n]范围的随机数,可以使用代码
rand()%(n-m+1)+m
⑧ C语言 怎么产生没有重复的一组随机数
随机数是有几率产生重复的数,你可以把新产生的跟前面的每一个比较如果有相等的就重新产生。
⑨ c语言怎样同时产生几组不同的随机数
int
a=(int)random(b);random(n)是产生从1到n
的一个随机数
nt
a=rand();rand()产生的是0--32767之间的随机数,rand()%5则结果为0-4的任意数,rand()%5+1则为1-5的任意数
⑩ 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)区间内的整数*/
return
0;
}