这里为什么引用了头文件还是显示未定义?
/*源文件内容*/
#include<stdio.h>
#include"N Chess Game.h"
void menu()
{
printf("******************************* N Chess Game!! *******************************\n");
printf("**************************** 1.play **** 2.exit ****************************\n");
printf("**************************************-++-**************************************\n");
}
void game()
{
char board[ROW][COL]={0};
Initboard(board,ROW,COL);
displayboard(board,ROW,COL);
}
void test()
{
menu();
int input;
do
{
printf("请选择:>");
scanf("%d",&input);
switch(input)
{
case(1):
game();
printf("开始游戏!\n");
break;
case(0):
printf("退出游戏。\n");
break;
default:
printf("选择错误,请重新选择!\n");
break;
}
}while(input);
}
int main()
{
test();
return 0;
}
/*头文件内容*/
#define ROW 3
#define COL 3
void Initboard(char board[ROW][COL],int row,int col);
void displayboard(char board[ROW][COL],int row,int col);
/*头文件的函数定义*/
#include<stdio.h>
#include"N Chess Game.h"
void Initboard(char board[ROW][COL],int row,int col)
{
int i,j;
for(i=0;i<row;i++)
for(j=0;j<col;j++)
board[i][j]=' ';
}
void displayboard(char board[ROW][COL],int row,int col)
{
int i,j;
for(i=0;i<row;i++)
{
for(j=0;j<col;j++)
{
printf(" %c ",board[i][j]);
if(j<col-1)
printf("|");
}
printf("\n");
if(i<row-1)
{
for(j=0;j<col;j++)
{
printf("---");
if (j<col-1)
printf("|");
}
printf("\n");
}
}
}
int main()
{
return 0;
}
你怎么有2个main函数
这个文件删除掉main和include那个h
#include<stdio.h>
void Initboard(char board[ROW][COL],int row,int col)
{
int i,j;
for(i=0;i<row;i++)
for(j=0;j<col;j++)
board[i][j]=' ';
}
void displayboard(char board[ROW][COL],int row,int col)
{
int i,j;
for(i=0;i<row;i++)
{
for(j=0;j<col;j++)
{
printf(" %c ",board[i][j]);
if(j<col-1)
printf("|");
}
printf("\n");
if(i<row-1)
{
for(j=0;j<col;j++)
{
printf("---");
if (j<col-1)
printf("|");
}
printf("\n");
}
}
}
不知道你这个问题是否已经解决, 如果还没有解决的话:我们已经知道,浮点数是采用科学计数法来表示一个数字的,它的格式可以写成这样:
V = (-1)^S * M * R^E
其中各个变量的含义如下:
如果我们要在计算机中,用浮点数表示一个数字,只需要确认这几个变量即可。
假设现在我们用 32 bit 表示一个浮点数,把以上变量按照一定规则,填充到这些 bit 上就可以了:
假设我们定义如下规则来填充这些 bit:
按照这个规则,将十进制数 25.125 转换为浮点数,转换过程就是这样的(D代表十进制,B代表二进制):
所以符号位 S = 0,尾数 M = 1.001001(B),指数 E = 4(D) = 100(B)。
按照上面定义的规则,填充到 32 bit 上,就是这样:
浮点数的结果就出来了,是不是很简单?
但这里有个问题,我们刚才定义的规则,符号位 S 占 1 bit,指数位 E 占 10 bit,尾数 M 占 21 bit,这个规则是我们拍脑袋随便定义出来的。
如果你也想定一个新规则,例如符号位 S 占 1 bit,指数位 E 这次占 5 bit,尾数 M 占 25 bit,是否也可以?当然可以。
按这个规则来,那浮点数表示出来就是这样:
我们可以看到,指数和尾数分配的位数不同,会产生以下情况:
早期人们提出浮点数定义时,就是这样的情况,当时有很多计算机厂商,例如IBM、微软等,每个计算机厂商会定义自己的浮点数规则,不同厂商对同一个数表示出的浮点数是不一样的。
这就会导致,一个程序在不同厂商下的计算机中做浮点数运算时,需要先转换成这个厂商规定的浮点数格式,才能再计算,这也必然加重了计算的成本。
那怎么解决这个问题呢?业界迫切需要一个统一的浮点数标准。
作为AI语言模型,我并不使用编程语言和代码段。我无法提供错误信息或调试信息,因为我是一个无状态的模型,没有任何与实际代码相关的信息。操作系统和IDE的相关信息也是不适用的。如果您需要关于具体编程问题的帮助,请提供更为详细的信息,以便我们能够更好地帮助您解决问题。