當前位置:首頁 » 存儲配置 » c存儲坐標

c存儲坐標

發布時間: 2024-09-05 03:01:36

⑴ 設計一個散列函數,用它存儲二維點的坐標。這是我們的c語言編程作業,我寫了如下代碼,但是有BUG:

這個已經幫你改了,你可以運行一下
# include <stdio.h>
# include <malloc.h>
# include <string.h>
#define NHASH 31

typedef struct zuobiao
{
int x;
int y;
struct zuobiao * next; //chain
}Nameval;

//函數聲明
Nameval * create();

Nameval *srt(Nameval *head,Nameval *t);

void main(void)
{

Nameval * sym,*head;
head=create();
//print(head);
sym=(struct zuobiao*)malloc(sizeof(struct zuobiao));
printf("請輸入要查找的坐標值:\nx = ");
scanf("%d", &sym->x);
printf("y = "); scanf("%d", &sym->y);
srt(head,sym);

}
///////////////////////////////////////////////////////////////
Nameval * create()
{
Nameval *head,*tail,*p;int x;
head= tail=NULL;
printf("請輸入坐標點的個數:");
scanf("%d",&x);
while(x>0)
{
p=(struct zuobiao*)malloc(sizeof(struct zuobiao));
printf("請輸入坐標的值:\nx = ");
scanf("%d", &p->x);
printf("y = "); scanf("%d", &p->y);

//p->age=x;
p->next=NULL;
if(head==NULL)
{
head=tail=p;
}
else
{
tail->next=p;
tail=p;
}
x--;
}

return(head);
}

//////////////////////////////////////////////////////////////////

Nameval *srt(Nameval *head,Nameval *t)
{
Nameval *p,*q;
p=(Nameval *)malloc(sizeof(Nameval));
p=head;
if(p==NULL) return NULL;
while(((p->x!=t->x)||(p->y!=t->y))&&(p->next!=NULL))
{
q=p;
p=p->next;
}
if((p->x==t->x)&&(p->y==t->y))
{
printf("已經有了這個坐標\n");
}
else if((p->next==NULL)&&(p->x!=t->x))
{

p->next=t;
t->next=NULL;
printf("新坐標已經插入\n");

}
//free(p);
return head;
}
可以推薦你加QQ群218691837

⑵ c語言中若要輸入坐標應該怎麼辦

先算出縱坐標的值,然後
用二維數組來存儲坐標,如:int a[5][5]; 可以用a[0][0] a[0][1]....
a[i][j]....a[4][3] a[4][4],來存儲5對坐標值,i、j分別是橫坐標和縱坐標。

熱點內容
二手製冷壓縮機 發布:2025-01-13 09:43:59 瀏覽:584
網魚電腦密碼多少 發布:2025-01-13 09:33:46 瀏覽:463
如何取消子賬號密碼 發布:2025-01-13 09:22:41 瀏覽:346
抖音搜索有緩存 發布:2025-01-13 09:17:28 瀏覽:589
c語言字元數組連接 發布:2025-01-13 08:55:11 瀏覽:900
國二c語言編程題目 發布:2025-01-13 08:45:41 瀏覽:285
ipad軟體如何加密 發布:2025-01-13 08:28:59 瀏覽:278
android的文件操作 發布:2025-01-13 08:24:48 瀏覽:173
電腦上伺服器答題賺錢 發布:2025-01-13 08:24:05 瀏覽:430
有哪些學習編程的網站 發布:2025-01-13 08:23:17 瀏覽:529