❶ c语言中如何产生随机的二维数组的坐标
使用随机函数即可产生随机数。
1、C语言提供了一些库函数来实现随机数的产生。C语言中有三个通用的随机数发生器,分别为rand函数,random函数,randomize函数
2、但是rand函数产生的并不是真意正义上的随机数,是一个伪随机数,是根据一个数,称之为种子,为基准以某个递推公式推算出来的一系数,当这系列数很大的时候,就符合正态公布,从而相当于产生了随机数,但这不是真正的随机数,当计算机正常开机后,这个种子的值是定了的,除非破坏了系统,为了改变这个种子的值,C提供了srand()函数,它的原形是voidsrand(inta)。
3、在调用rand函数产生随机数前,必须先利用srand()设好随机数种子,如果未设随机数种子,rand()在调用时会自动设随机数种子为1。一般用for语句来设置种子的个数。
举例:
#include<stdio.h>
#include<stdlib.h>
#include<time.h>
intmain()
{
inta[10][2];
inti,j,x,y;
srand(time(NULL));/*随机数种子*/
for(i=0;i<10;i++)
for(j=0;j<2;j++)
{
a[i][j]=0+rand()%10;/*产生0到10(不包括10)之间的随机数*/
}
printf("输出元素: ");
for(i=0;i<10;i++)
for(j=0;j<2;j++)
{
printf("a[%d][%d]=%d",i,j,a[i][j]);
if((j+1)%2==0)
printf(" ");
}
getchar();
return0;
}
❷ C语言中如何定义一个二维数组
C语言不支持动态数组 所以不能将变量作为数组长度
一般来说用C实现动态数组会用链表的方式
❸ C语言编程坐标曲线
下面是的是昨天的,但是修改了一下坐标的刻度.
/*******************************************************
*Author :Wacs5
*Date :20090105(YYYY-MM-DD)
*Function :画简易的曲线图 *********************************************************/
#include <stdio.h>
#include <conio.h>
#include <stdlib.h>
#include <math.h>
#include <Graphics.h>
#define n 8
int main()
{
int i,j;
float data[]={7,3,12,6,9,5,8,11};
char str[40];
int gdrive=DETECT,gmode,errorcode;
int maxx,maxy;
int perx,pery;
int x0,x1,y0,y1;
int coloraxis=2,colorline=3;
float mindata,maxdata,ndata;
initgraph(&gdrive,&gmode,""); /*初始化设备*/
if ((errorcode=graphresult())!=grOk) /*查错*/
{
printf("Graphics error:%s\nPress any key to exit:",grapherrormsg(errorcode));
getch();
exit(1);
}
maxx=getmaxx();
maxy=getmaxy();
mindata=0;
maxdata=data[0];
for (i=1;i<n;i++)
if (maxdata<data[i])
maxdata=data[i];
perx=maxx/(n+4);
pery=maxy/(maxdata-mindata+4);
x0=2*perx;
y0=maxy-2*pery;
x1=maxx-2*perx;
y1=2*pery;
setcolor(coloraxis);
line(x0,y0,x1,y0);
line(x0,y0,x0,y1);
line(x1,y0,x1-4,y0+3);
line(x1,y0,x1-4,y0-3);
line(x0,y1,x0+3,y1+4);
line(x0,y1,x0-3,y1+4);
settextjustify(CENTER_TEXT,TOP_TEXT);
for (i=0;i<=n;i++)
{
j=x0+i*perx;
line(j,y0,j,y0+2); /*刻度线*/
sprintf(str,"%d",i);
outtextxy(j,y0+4,str);
}
settextjustify(RIGHT_TEXT,CENTER_TEXT);
for (i=1;i<=12;i++)
{
j=y0-i*pery;
line(x0,j,x0-2,j); /*刻度线*/
sprintf(str,"%d",i);
outtextxy(x0-4,j,str);
}
setcolor(colorline);
x1=x0+perx;
y1=y0-(data[0]-mindata)*pery;
circle(x1,y1,2);
moveto(x1,y1);
i=1;
do
{
x1+=perx;
y1=y0-(data[i]-mindata)*pery;
lineto(x1,y1);
circle(x1,y1,2);
moveto(x1,y1);
i++;
}while(i<n);
getch();
closegraph();
return 0;
}
❹ 程序设计用C语言求二维空间中两点的中点
根据题意,算出2个坐标点的平均值就是中点坐标.
float是单浮点,你可以用int整数或者double双浮点代替.
#include <stdio.h>
int main()
{
float x1, y1; //坐标一
float x2, y2; //坐标二
float xmid, ymid; //中点坐标
printf("请输入第一个坐标,用逗号隔开:");
scanf("%f,%f", &x1, &y1);
printf("请输入第二个坐标,用逗号隔开:");
scanf("%f,%f", &x2, &y2);
/*算出2个坐标平均值*/
xmid = (x1 + x2) / 2;
ymid = (y1 + y2) / 2;
printf("它们的中点坐标:%f,%f\n", xmid, ymid);
return 0;
}
❺ 用二维数组表示坐标c语言
p[a][b]=1;/*a+1为第几个坐标,b+1为坐标中的第几个数*/
p[0][1]=3;/*例如第一个坐标中的第2个数为3*/
如果要批量赋值的话可以用for的嵌套
❻ 请教:用c语言怎么建立坐标系
怎么在C语言的图形模式下实现匀速圆周运动?为什么我用圆的对称性的方程做出来的是变速的(就是建立一个直角坐标系,X由从小到大递增,然后画出点)?
#include "stdio.h"
#include "math.h"
#include "graphics.h"
#include "conio.h"
#define R 50 /*半径*/
#define V 100000 /*延迟时间*/
main()
{
int x,y,ta,tb,a=1;
ta=DETECT;
initgraph(&ta,&tb,"c:\\tc");/*初始化图形驱动*/
x=-R;
while(1)
{
x+=a;/*X的递增或递减(由a而定)*/
y=sqrt(R*R-x*x)*a; /*方程*/
putpixel(x+240,y+250,7);/*画点*/
delay(V);/*延时*/
putpixel(x+240,y+250,0);/*擦除点*/
if(x==R||x==-R)/*换方向*/
a=-a;
if(bioskey(1)!=0)/*控制退出的(按下任意键结束)*/
break;
}
closegraph();
}