當前位置:編程學習大全網 - 編程語言 - c++運行問題

c++運行問題

妳的錯誤基本上是以下幾點:

1:有些{}沒有匹配,如有{,下面沒有}

2.有什麽字符妳是在中文的狀態下打的,如if(,那個括號明顯不壹樣哦,vc中認不到

3.妳在用void 類型的函數時最好加上(),如Init()不然會有警告。

4.有些函數還沒定義又沒進行申明,就用到。這樣程序認不到。要麽妳要在前面進行申明,要麽把函數的定義寫在調用函數的前面。

給妳個建議:編程習慣要好點哦,這樣以後妳改自己的程序比較明顯看的出自己錯在哪,起碼像{}不匹配的現象不會出現。

給妳改好了,程序如下:

#include<iostream.h>

#include <stdlib.h>

#define LIFE_MAX_ROW 8//定義土地的最大行數

#define LIFE_MAX_COL 8//定義土地的最大列數

//進化狀態

char g_land[LIFE_MAX_ROW+2][LIFE_MAX_COL+2]={0};//代表土地的數組

unsigned g_gen=0;//進化次數

void Plant_Man();//手工播種函數

void Plant_Auto();//自動播種的函數

//初始化

void Init()

{

int i=1,j=1;

for(i=1;i<9;i++)

for(j=1;j<9;j++)

g_land[i][j]='+';

}

//播種

void Plant()

{

int num;

cout<<"請選擇您需要的播種方式,手工請按0,自動請按1"<<endl;

cin>>num;

if(num==0)

Plant_Man();

else

Plant_Auto();

}

void Plant_Man()//手工播種函數

{

int n,i,a,b;

cout<<"請您至少選擇三塊土地來進行播種,請輸入您選擇要播種幾塊土地:"<<endl;

cin>>n;

for(i=0;i<n;i++)

{

cout<<"請您輸入要播種的土地所在行數:"<<endl;

cin>>a;

cout<<"請您輸入要播種的土地所在列數:"<<endl;

cin>>b;

g_land[a][b]='@';

}

}

void Plant_Auto()//自動播種的函數

{

int n,a,b;

n=rand()%64;

for(int i=0;i<n;i++)

{

a=rand()%8+1;

b=rand()%8+1;

g_land[a][b]='@';

}

}

void Grow()//繁衍輸出函數

{

int a[10][10]={0};

int i,j,n=0;

for(i=1;i<9;i++)

for(j=1;j<9;j++)

{

if(g_land[i][j]=='+')

{

if(g_land[i+1][j]=='@')n++;

if(g_land[i+1][j+1]=='@')n++;

if(g_land[i+1][j-1]=='@')n++;

if(g_land[i][j+1]=='@')n++;

if(g_land[i][j-1]=='@')n++;

if(g_land[i-1][j]=='@')n++;

if(g_land[i-1][j+1]=='@')n++;

if(g_land[i-1][j-1]=='@')n++;

if(n==3)

a[i][j]=1;

}

else if(g_land[i][j]=='@')

{

if(g_land[i+1][j]=='@')n++;

if(g_land[i+1][j+1]=='@')n++;

if(g_land[i+1][j-1]=='@')n++;

if(g_land[i][j+1]=='@')n++;

if(g_land[i][j-1]=='@')n++;

if(g_land[i-1][j]=='@')n++;

if(g_land[i-1][j+1]=='@')n++;

if(g_land[i-1][j-1]=='@')n++;

if(n<4&&n>1)

a[i][j]=1;

}

}

for(i=1;i<9;i++)

for(j=1;j<9;j++)

{

if(a[i][j]==0)

g_land[i][j]='+';

else

g_land[i][j]='@';

}

cout<<g_land<<endl;

}

void Judge()

{

int k,m,n=0;

for(int i=1;i<9;i++)

for(int j=1;j<9;j++)

if(g_land[i][j]=='@')

n++;

if(n==0)

{

cout<<"您的田地處於消亡狀態,請選擇是否重新開始遊戲,若是請選擇0,若不是選擇1"<<endl;

cin>>m;

if(m==0)

Init();

else

cout<<"遊戲結束"<<endl;

}

else if(n!=0)

{

cout<<"請問您要繼續繁衍還是重新開始?繼續請選擇0,重新開始請選擇1"<<endl;

cin>>k;

if(k==0)

Grow();

else

Init();

}

}

void main()

{

cout<<"這是壹個關於進化的仿真遊戲。您在壹塊地裏播上種子,然後可以觀察生命在這塊地上的繁衍過程。"<<endl;

Init();

Plant();

Grow();

Judge();

}

  • 上一篇:新興信息技術有哪些?
  • 下一篇:在自動編程中
  • copyright 2024編程學習大全網