當前位置:首頁 » 編程語言 » 怎麼構造的無向圖c語言
擴展閱讀
webinf下怎麼引入js 2023-08-31 21:54:13
堡壘機怎麼打開web 2023-08-31 21:54:11

怎麼構造的無向圖c語言

發布時間: 2022-11-02 00:52:55

A. 怎麼用c語言生成一個固定頂點數和固定邊數的無向圖

#defineInfinity1000#defineMaxVertexNum35#defineMAX40#include#include#include#include#includetypedefstructarcell//邊的權值信息{intadj;//權值}arcell,adjmatrix[MaxVertexNum][MaxVertexNum];//圖的鄰接矩陣類型typedefstructvexsinfo//頂點信息{intposition;//景點的編號charname[32];//景點的名稱charintroction[256];//景點的介紹}vexsinfo;typedefstructmgraph//圖結構信息{vexsinfovexs[MaxVertexNum];//頂點向量(數組)adjmatrixarcs;//鄰接矩陣intvexnum,arcnum;//分別指定頂點數和邊數}mgraph;//全局變數intvisited[35];//用於標志是否已經訪問過intd[35];//用於存放權值或存儲路徑頂點編號mgraphcampus;//圖變數(大學校園)//(1)對圖初始化mgraphinitgraph(){inti=0,j=0;mgraphc;c.vexnum=28;//頂點個數c.arcnum=39;//邊的個數for(i=0;i",c.vexs[d[s]].name);//輸出該路徑。s=0時為起點mprintf("%s",c.vexs[d[s]].name);//輸出最後一個景點名(即頂點n的名字,此時s==k)printf("\n\n");}else{s=0;while(sc.vexnum){printf("\n你所輸入的景點編號不存在\n");printf("請重新輸入:");scanf("%d",&v0);}//whilefor(v=0;v%s",c.vexs[w].name);}printf("---->%s",c.vexs[v].name);printf("\n總路線長為%d米\n\n",d[v]);}//for}//shortestpath//(6)-(11)修改圖的信息。包括建圖、更新信息、刪除、增加結點和邊//(6)構造圖的鄰接矩陣intcreatgragh(mgraph&c)//建圖。以圖的鄰接矩陣存儲圖{inti,j,m,n;intv0,v1;intdistance;printf("請輸入圖的頂點數和邊數:\n");scanf("%d%d",&c.vexnum,&c.arcnum);printf("下面請輸入景點的信息:\n");for(i=0;i=0&&n>=0){c.arcs[m][n].adj=distance;c.arcs[n][m].adj=c.arcs[m][n].adj;}}return1;}//creatgragh//(7)更新圖的部分信息。返回值:1intnewgraph(mgraph&c){intchangenum;//計數。用於記錄要修改的對象的個數inti,m,n,t,distance,v0,v1;printf("\n下面請輸入你要修改的景點的個數:\n");scanf("%d",&changenum);while(changenumc.vexnum){printf("\n輸入錯誤!請重新輸入");scanf("%d",&changenum);}for(i=0;ic.arcnum){printf("\n輸入錯誤!請重新輸入");scanf("%d",&changenum);}printf("\n下面請輸入更新邊的信息:\n");for(i=1;i=0&&n>=0){c.arcs[m][n].adj=distance;c.arcs[n][m].adj=c.arcs[m][n].adj;}}return1;}//newgraph

B. 數據結構中怎麼編寫創建一個無向圖的程序

#include<stdio.h>
#include<stdlib.h>
#define infinity 100 //權最大值定為100,相當於正無窮
#define max 3 //最大頂點數3個

typedef struct ArcCell{
int weight; //權值
}ArcCell,AdjMatrix[max][max];
typedef struct{ //圖
char vexs[max];
AdjMatrix arcx;
int vexnum,arcnum;
}MGrap;

void CreateUDN(MGrap &G);
int main(){
MGrap G;
CreateUDN(G);
return 0;
}
void CreateUDN(MGrap &G)
{
int i,j,k;
printf("Input the number of vex and arc:"); //分別輸入頂點和弧的個數
scanf("%d %d",&G.vexnum,&G.arcnum);
for(i=0;i<G.vexnum;i++) //依次輸入每個頂點
{
printf("請輸入第%d個頂點",i+1);
scanf("%c",&G.vexs[i]);
}
for(i=0;i<G.vexnum;i++)
for(j=0;j<G.vexnum;j++)
G.arcx[i][j].weight = infinity;
for(i=0;i<G.arcnum;i++)
{
printf("請輸入弧的兩端點:(NO.%d)",i+1); //輸入第i+1條弧的兩端點,確定弧
scanf("%d %d ",&k,&j );
scanf("%d",&G.arcx[k][j].weight);
G.arcx[j][k]=G.arcx[k][j]; //無向圖弧關於對角線對稱
}

}

C. 數據結構無向圖的建立

您好,這是我們數據結構一個作業程序,希望能幫到你。
#include <stdio.h>
#include<stdlib.h>
#define int_max 10000
#define inf 9999
#define max 20
//鄰接矩陣定義
typedef struct ArcCell
{
int adj;
char *info;
}ArcCell,AdjMatrix[20][20];
typedef struct
{
char vexs[20];
AdjMatrix arcs;
int vexnum,arcnum;
}MGraph_L;

int LocateVex(MGraph_L G,char v)//查找頂點v的序號
{
int i=0;
while(G.vexs[i]!=v)
{
++i;
}
return i;
}

int createMGraph_L(MGraph_L &G)//創建圖用鄰接矩陣表示
{
char v1,v2;
int i,j,w;
printf("創建無向圖\n");
printf("請輸入無向圖G的頂點數和弧數:");
scanf("%d%d",G.vexnum,G.arcnum);
for(i=0;i!=G.vexnum;++i)
{
printf("輸入頂點%d\n",i);
scanf("%c",G.vexs[i]);
}
for(i=0;i!=G.vexnum;++i)
for(j=0;j!=G.vexnum;++j)
{
G.arcs[i][j].adj=int_max;
G.arcs[i][j].info=NULL;
}
printf("輸入一條邊依附的頂點和權:\n");
for(int k=0;k!=G.arcnum;++k)
{

scanf("%c%c%d",&v1,&v2,&w); //輸入一條邊依附的兩點及權值
i=LocateVex(G,v1); //確定頂點V1和V2在圖中的位置
j=LocateVex(G,v2);
G.arcs[i][j].adj=w;
G.arcs[j][i].adj=w;
}
return G.vexnum;
}

typedef struct ArcNode //弧結點
{
int adjvex; //該弧所指向的頂點的位置
struct ArcNode *nextarc; //指向下一條弧的指針
//char *info; //該弧相關信息的指針
}ArcNode;
typedef struct vnode //鄰接鏈表頂點頭接點
{
char data; //頂點信息
ArcNode *firstarc; //指向第一條依附該頂點的弧的指針
}vnode,adjlist;
typedef struct //圖的定義
{
adjlist vertices[max];
int vexnum,arcnum; //圖的當前頂點數和弧數
}ALGraph;

int CreateUDG(ALGraph &gra,MGraph_L G)//用鄰接表存儲圖
{

int i=0,j=0;
ArcNode *arc,*tem,*p;
for(i=0;i!=G.vexnum;++i)
{
gra.vertices[i].data=G.vexs[i];
gra.vertices[i].firstarc=NULL;
}
for(i=0;i!=G.vexnum;++i)
{
for(j=0;j!=G.vexnum;++j)
{
if(gra.vertices[i].firstarc==NULL)
{
if(G.arcs[i][j].adj!=int_max&&j!=G.vexnum)
{
arc=(ArcNode *)malloc(sizeof(ArcNode));
arc->adjvex=j;
gra.vertices[i].firstarc=arc;
arc->nextarc=NULL;
p=arc;
++j;
while(G.arcs[i][j].adj!=int_max&&j!=G.vexnum)
{
tem=(ArcNode *)malloc(sizeof(ArcNode));
tem->adjvex=j;
gra.vertices[i].firstarc=tem;
tem->nextarc=arc;
arc=tem;
++j;
}
--j;
}
}
else
{
if(G.arcs[i][j].adj!=int_max&&j!=G.vexnum)
{
arc=(ArcNode *)malloc(sizeof(ArcNode));
arc->adjvex=j;
p->nextarc=arc;
arc->nextarc=NULL;
p=arc;
}

}

}
}
gra.vexnum=G.vexnum;
gra.arcnum=G.arcnum;
printf("圖G的鄰接表創建成功!\n");
return 1;
}

typedef struct
{
int adjvex;
int lowcost;
}closedge;

int prim(int g[][max],int n) //最小生成樹PRIM演算法
{
int lowcost[max],prevex[max]; //LOWCOST[]存儲當前集合U分別到剩餘結點的最短路徑
//prevex[]存儲最短路徑在U中的結點
int i,j,k,min;
for(i=2;i<=n;i++) //n個頂點,n-1條邊
{
lowcost[i]=g[1][i]; //初始化
prevex[i]=1; //頂點未加入到最小生成樹中
}
lowcost[1]=0; //標志頂點1加入U集合
for(i=2;i<=n;i++) //形成n-1條邊的生成樹
{
min=inf;
k=0;
for(j=2;j<=n;j++) //尋找滿足邊的一個頂點在U,另一個頂點在V的最小邊
if((lowcost[j]<min)&&(lowcost[j]!=0))
{
min=lowcost[j];
k=j;
}
printf("(%d,%d)%d\t",prevex[k]-1,k-1,min);
lowcost[k]=0; //頂點k加入U
for(j=2;j<=n;j++) //修改由頂點k到其他頂點邊的權值
if(g[k][j]<lowcost[j])
{
lowcost[j]=g[k][j];
prevex[j]=k;
}
printf("\n");
}
return 0;
}

void list()
{
printf("……………………菜單……………………\n\n");
printf("0、創建無向圖並用鄰接表存儲邊信息…..\n");

printf("1、使用prim演算法求最小生成樹……………\n");
printf("2、退出系統…………………………………\n\n");
}

void main()
{
ALGraph G1;
MGraph_L G;
int i,d,g[20][20];
char y='y';
int k;
while(y=='y')
{
list();
printf("請選擇菜單:\n");
scanf("%d",&k);
switch(k)
{
case 0:
d=createMGraph_L(G);
CreateUDG(G1,G);
break;

case 1:
for(i=0;i!=G.vexnum;++i)
for(int j=0;j!=G.vexnum;++j)
g[i+1][j+1]=G.arcs[i][j].adj;
printf("prim:\n");
prim(g,d);
break;
case 2:break;
//exit(1);
}
printf("\n是否繼續操作?y/n:");
scanf("%c",&y);
}

}

D. 無向圖的建立(鄰接矩陣)與深度遍歷程序(C語言)

(1) 圖的建立,按採用鄰接表作為存儲結構,

(2) 從指定頂點出發進行深度優先搜索遍歷。
(3) 從指定頂點出發進行廣度優先搜索遍歷。

#include"stdio.h"
#include"string.h"
#include"stdlib.h"
#include"math.h"

#define MAX_INT 1000
#define MAX_VERTEX_NUM 20
#define MAX_QUEUE_NUMBER 20

typedef struct ArcNode
{
int adjvex;
double adj;
struct ArcNode *nextarc;
}ArcNode;
typedef struct VexNode
{
char szName[40];
ArcNode *firstarc;
}VexNode,AdjList[MAX_VERTEX_NUM];
typedef struct
{
AdjList vexs;
int vexnum,arcnum;
}Net;
//定義隊列
typedef struct{
int *elem;
int front, rear;
}Queue;
void InitQueue(Queue &Q)
{
Q.elem = new int[MAX_QUEUE_NUMBER];
Q.front = Q.rear = 0;
}
int EmptyQueue(Queue Q)
{
if(Q.front==Q.rear)
return 0;
else
return 1;
}
void DestroyQueue(Queue &Q){
delete []Q.elem;
Q.front = Q.rear = 0;
}

void EnterQueue(Queue &Q, int e)
{
if((Q.rear + 1)%MAX_QUEUE_NUMBER != Q.front)
Q.elem[Q.rear ] = e;
else
printf("隊列滿!\n");
Q.rear = (Q.rear + 1)%MAX_QUEUE_NUMBER;
}
void LeaveQueue(Queue &Q, int &e)
{
if(Q.rear != Q.front)
e = Q.elem[Q.front];
else
printf("隊列空!\n");
Q.front = (Q.front+1)%MAX_QUEUE_NUMBER;
}
int LocateVex(Net ga,char *name)
{
int i;
for(i=0;i<ga.vexnum;i++)
if(strcmp(name,ga.vexs[i].szName)==0)
return i;
return -1;

}
void crt_net(Net &ga)
{
ArcNode *p;
char name1[40],name2[40];
int i,j,k;
double w;
printf("請輸入頂點數和弧數:");
scanf("%d%d",&ga.vexnum,&ga.arcnum);
printf("請依次輸入頂點名:\n");
for(i=0;i<ga.vexnum;i++)
{
scanf("%s",ga.vexs[i].szName);
ga.vexs[i].firstarc=NULL;
}
for(k=0;k<ga.arcnum;k++)
{
printf("請輸入相鄰的兩個定點和權值:");
scanf("%s%s%lf",name1,name2,&w);
i=LocateVex(ga,name1);
j=LocateVex(ga,name2);
p=new ArcNode;
p->adjvex=j;
p->adj=w;
p->nextarc=ga.vexs[i].firstarc;
ga.vexs[i].firstarc=p;
}
}

void DFS(Net ga,char *name,int *visited)
{
int v,w;
ArcNode *p;
v=LocateVex(ga,name);
visited[v]=1;
printf("%s ",ga.vexs[v].szName);
p=ga.vexs[v].firstarc;
while(p!=NULL)
{
w=p->adjvex;
if(visited[w]==0)
DFS(ga,ga.vexs[w].szName,visited);
p=p->nextarc;
}

}
void DFSTravel(Net ga,char *name)
{
int v,k=0;
int visited[20];
for(v=0;v<ga.vexnum;v++)
visited[v]=0;
for(v=LocateVex(ga,name);k!=2;v=(v+1)%(ga.vexnum-1))
{
if(v+1==LocateVex(ga,name))
k++;
if(visited[v]==0)
DFS(ga,ga.vexs[v].szName,visited);

}
}

void BFSTravel(Net ga,char *name)
{
ArcNode *p;
int v,w,u,k=0;
Queue Q;
int visited[20];
for(v=0;v<ga.vexnum;v++)
visited[v]=0;
InitQueue(Q);
for(v=LocateVex(ga,name);k!=2;v=(v+1)%(ga.vexnum-1))
{
if(v+1==LocateVex(ga,name))
k++;
if(visited[v]==0)
{
visited[v]=1;
printf("%s ",ga.vexs[v].szName);
EnterQueue(Q,v);
while(EmptyQueue(Q)!=0)
{
LeaveQueue(Q,u);
p=ga.vexs[u].firstarc;
while(p!=NULL)
{
w=p->adjvex;
if(visited[w]==0)
{
printf("%s ",ga.vexs[w].szName);
visited[w]=1;
EnterQueue(Q,w);
}
p=p->nextarc;
}
}
}

}
}

void main()
{
char name[40];
Net ga;
crt_net(ga);
printf("請輸入深度優先遍歷開始點的名:");
scanf("%s",name);
printf("深度優先遍歷:");
DFSTravel(ga,name);
printf("\n");
printf("請輸入廣度優先遍歷開始點的名:");
scanf("%s",name);
printf("廣度優先遍歷:");
BFSTravel(ga,name);
printf("\n");

}

E. 在C語言中編程實現建立無向圖的鄰接表,輸出某個點的鄰接點~!

用矩陣表示無向圖的,設有M個節點,則建立一個MXM矩陣,對每個頂點添加它的鄰接點,即每行中對於有標記的列為該行頂點的鄰接點。

F. C語言實現無向圖

可以用鄰接矩陣表示法:

#define max 100
typedef struct
{
int vex[max];//存儲頂點值,類型可以變
int edge[max][max];//存儲頂點之間的關系,以1或者0表示,1為有邊,0為無
int e,v;//vertex存儲頂點數,edge存儲邊的條數,所以無向圖1的個數是邊的個數的兩倍,謝謝。
}m;

G. c語言鄰接矩陣建造一個無向圖並深度優先遍歷 請問我寫的程序為啥只能輸出部分節點。。高手幫幫忙

你的DFS函數,就是深度優先的遞歸函數貌似沒有遞歸好
struct MGraph
{
int vertex[maxvertex]; //存頂點
int arc[maxvertex][maxvertex]; //存邊(鄰接矩陣)
int vertexnum,arcnum; //頂點數和邊數
};

其次是對圖的初始化:

void CreatMGraph(MGraph *&G)
{
int i,j;
cin1>>G->vertexnum>>G->arcnum; //輸入頂點數和邊數

for(i=0;i<G->vertexnum;i++) //輸入每個頂點的值
cin1>>G->vertex[i];

for(i=0;i<G->vertexnum;i++) //初始化鄰接矩陣
for(j=0;j<G->vertexnum;j++)
G->arc[i][j]=0;

for(i=0;i<G->arcnum;i++)
{
int n,m,w;
cin1>>n>>m>>w; //修改鄰接矩陣中的值
G->arc[n][m]=w;
G->arc[m][n]=w;
}
}

在此之前需要定義一個全局變數的visited數組:

int visited[maxvertex]; //標記已被訪問過的頂點(全局變數)

//廣度優先遍歷

void BFS(MGraph *&G,int v)

{
queue<int> q;
int x,j;
if(!visited[v]) //即為visited[v]==0,也就是未被訪問過
{
cout<<G->vertex[v]<<" ";
visited[v]=1;
q.push(v); //被訪問的頂點入隊
}

while(!q.empty()) //隊不空進循環
{
x=q.front(); //取隊頭元素
q.pop(); //隊頭出隊
for(j=0;j<G->vertexnum;j++)
if (G->arc[x][j]&&!visited[j])
{
cout<<G->vertex[j]<<" ";
visited[j]=1; //標記為訪問過
q.push(j); //被訪問的頂點繼續入隊
}
}
}

//深度優先遍歷
void DFS(MGraph *&G,int v)

{
nt j;
if(!visited[v])

{
cout<<G->vertex[v]<<" ";
visited[v]=1; //標記為訪問過
}

for(j=0;j<G->vertexnum;j++)
if (G->arc[v][j]&&!visited[j])//鄰接矩陣的第(v,j)元素不為0
{ //且未被訪問過則遞歸
DFS(G,j);
}
}

此為圖的鄰接矩陣的輸出函數:

void Print(MGraph *G)
{
int i,j;
for(i=0;i<G->vertexnum;i++)
{
for(j=0;j<G->vertexnum;j++)
cout<<G->arc[i][j]<<" ";
cout<<endl;
}
}

main函數調用上面函數:

int main()
{
MGraph *G=new MGraph;
CreatMGraph(G);

cout<<"輸出鄰接矩陣:"<<endl;
Print(G);

cout<<"深度優先搜索:";
DFS(G,0);
cout<<endl;

memset(visited,0,sizeof(visited));//非常重要!!在下一個搜索之前一定要將標志位全部重新賦值為0

cout<<"廣度優先搜索:";
BFS(G,0);
cout<<endl;

return 0;
}

H. 怎樣用鄰接矩陣為存儲結構創建一個無向圖

int CreateUDG(AdjMatrix *G){
int i,j,k,weight;
VertexData v1,v2;
printf("輸入圖的弧數和頂點數\n");
fflush(stdin);
scanf("%d,%d",&G->arcnum,&G->vexnum); /*輸入圖的頂點數和弧數*/
for(i=0;i<G->vexnum;i++) /*初始化鄰接矩陣*/
for(j=0;j<G->vexnum;j++)
G->arcs[i][j].adj=INFINITY;
for(i=0;i<G->vexnum;i++)
{
printf("輸入圖的頂點\n");
fflush(stdin);
scanf("%c",&G->vexs[i]); /* 輸入圖的頂點*/
}
for(k=0;k<G->arcnum;k++)
{
printf("輸入一條弧的兩個頂點及權值\n");
fflush(stdin);
scanf("%c,%c,%d",&v1,&v2,&weight);/*輸入一條弧的兩個頂點及權值*/
i=LocateVertex(G,v1);
j=LocateVertex(G,v2);
G->arcs[i][j].adj=weight; /*建立弧*/
}
return(Ok);
}

void main()
{
AdjMatrix G;
CreateDN(&G);
}

I. C語言編寫一個無向圖程序,急用,能用的話高分回報

#include <stdlib.h>
#include <conio.h>
#include <time.h>

void Menu();
void Plus();
void Minus();
void Multiply();
void Dir();

int main()
{
int n, flag = 0;
while(1)
{
Menu();
do
{
flag = 0;
scanf("%d", &n);
switch(n)
{
case 1: Plus(); break;
case 2: Minus(); break;
case 3: Multiply(); break;
case 4: Dir(); break;
case 5: exit(0);
default:
{
printf("輸入有誤, 請重新輸入!");
flag = 1;
}
}
}
while(flag);
}
return 0;
}

void Menu()
{
system("cls");
printf("\t\t歡迎來到小學生算數訓練\n");
printf("\t\t\t1.加法訓練\n");
printf("\t\t\t2.減法訓練\n");
printf("\t\t\t3.乘法訓練\n");
printf("\t\t\t4.除法訓練\n");
printf("\t\t\t5.退出\n");
printf("\t\t\t請選擇: ");
}

void Plus()
{
system("cls");
printf("\t\t現在是加法訓練\n\n");
srand((unsigned)time(NULL));
int plu[10][4];
int m, n, result, input;
for(int i = 0; i < 10; i++)
{
m = rand() % 10;
n = rand() % 10;
printf("請計算: %d + %d = ", m, n);
result = m + n;
scanf("%d", &input);
if(input != result)
printf("真可惜, 回答錯誤, 請再接再厲!\n");
else
printf("恭喜你, 回答正確, 請繼續加油!\n");
plu[i][0] = m;
plu[i][1] = n;
plu[i][2] = input;
plu[i][3] = result;
}
printf("===============十道題目回答如下=================\n\n");
for(int j = 0; j < 10; j++)
{
printf("%d + %d = %d\t", plu[j][0], plu[j][1], plu[j][2]);
if(plu[j][2] != plu[j][3])
printf("(正確答案為%d)", plu[j][3]);
printf("\n");
}
printf("輸入任意鍵返回主菜單\n");
getch();
}

void Minus()
{
system("cls");
printf("\t\t現在是減法訓練\n\n");
srand((unsigned)time(NULL));
int plu[10][4];
int m, n, result, input;
for(int i = 0; i < 10; i++)
{
do
{
m = rand() % 10;
n = rand() % 10;
}while(m < n);
printf("請計算: %d - %d = ", m, n);
result = m - n;
scanf("%d", &input);
if(input != result)
printf("真可惜, 回答錯誤, 請再接再厲!\n");
else
printf("恭喜你, 回答正確, 請繼續加油!\n");
plu[i][0] = m;
plu[i][1] = n;
plu[i][2] = input;
plu[i][3] = result;
}
printf("===============十道題目回答如下=================\n\n");
for(int j = 0; j < 10; j++)
{
printf("%d - %d = %d\t", plu[j][0], plu[j][1], plu[j][2]);
if(plu[j][2] != plu[j][3])
printf("(正確答案為%d)", plu[j][3]);
printf("\n");
}
printf("輸入任意鍵返回主菜單\n");
getch();
}

void Multiply()
{
system("cls");
printf("\t\t現在是乘法訓練\n\n");
srand((unsigned)time(NULL));
int plu[10][4];
int m, n, result, input;
for(int i = 0; i < 10; i++)
{
m = rand() % 10;
n = rand() % 10;
printf("請計算: %d * %d = ", m, n);
result = m * n;
scanf("%d", &input);
if(input != result)
printf("真可惜, 回答錯誤, 請再接再厲!\n");
else
printf("恭喜你, 回答正確, 請繼續加油!\n");
plu[i][0] = m;
plu[i][1] = n;
plu[i][2] = input;
plu[i][3] = result;
}
printf("===============十道題目回答如下=================\n\n");
for(int j = 0; j < 10; j++)
{
printf("%d * %d = %d\t", plu[j][0], plu[j][1], plu[j][2]);
if(plu[j][2] != plu[j][3])
printf("(正確答案為%d)", plu[j][3]);
printf("\n");
}
printf("輸入任意鍵返回主菜單\n");
getch();
}

void Dir()
{
system("cls");
printf("\t\t現在是除法訓練\n\n");
srand((unsigned)time(NULL));
int plu[10][4];
int m, n, result, input;
for(int i = 0; i < 10; i++)
{
do
{
m = rand() % 10;
n = rand() % 10;
}while(m == 0 || n == 0);
result = m * n;
int temp;
temp = m;
m = result;
result = temp;
printf("請計算: %d / %d = ", m, n);
scanf("%d", &input);
if(input != result)
printf("真可惜, 回答錯誤, 請再接再厲!\n");
else
printf("恭喜你, 回答正確, 請繼續加油!\n");
plu[i][0] = m;
plu[i][1] = n;
plu[i][2] = input;
plu[i][3] = result;
}
printf("===============十道題目回答如下=================\n\n");
for(int j = 0; j < 10; j++)
{
printf("%d / %d = %d\t", plu[j][0], plu[j][1], plu[j][2]);
if(plu[j][2] != plu[j][3])
printf("(正確答案為%d)", plu[j][3]);
printf("\n");
}
printf("輸入任意鍵返回主菜單\n");
getch();
}