❶ 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();
}