C++报错:①does not name a type ②incompatible types in assignment of 'const char [3]' to 'char [10]'
在编程解决交通指挥灯问题时,遇到如下报错情况
does not name a type报错部分代码如下
struct Node{//顶点类型定义
char name[10];//路线名称,如AB
int color;
}v[13];//图中有13个顶点
v[0].name="AB";v[1].name="AC";v[2].name="AD";v[3].name="BA";v[4].name="BC";v[5].name="BD";
v[6].name="DA";v[7].name="DB";v[8].name="DC";v[9].name="EA";v[10].name="EB";v[11].name="EC";v[12].name="ED";
for(int j=0;j<13;j++){
v[j].color=0;//未着色
}
int e[13][13];//1表示两顶点相邻,及两条路线不能同时通行;0相反
//初始化邻接矩阵
e[0][4]=1;e[0][5]=1;e[0][6]=1;e[0][9]=1;
e[1][5]=1;e[1][6]=1;e[1][7]=1;e[1][9]=1;e[1][10]=1;
e[2][9]=1;e[2][10]=1;e[2][11]=1;
e[4][0]=1;e[4][7]=1;e[4][10]=1;
e[5][0]=1;e[5][1]=1;e[5][6]=1;e[5][10]=1;e[5][11]=1;
e[6][0]=1;e[6][1]=1;e[6][5]=1; e[6][10]=1; e[6][11]=1;
e[7][1]=1;e[7][4]=1;e[7][11]=1;
e[9][0]=1;e[9][1]=1;e[9][2]=1;
e[10][1]=1;e[10][2]=1;e[10][4]=1;e[10][5]=1;e[10][6]=1;
e[11][2]=1;e[11][5]=1;e[11][6]=1;e[11][7]=1;
解决方法
将除结构体定义以外部分的代码(包括录入顶点、初始化顶点颜色信息、初始化邻接矩阵)移到主函数中
报错:
incompatible types in assignment of ‘const char [3]’ to 'char [10]'
改正:
要使用strcpy赋值
注意添加头文件#include"string.h"
strcpy(v[0].name,"AB");strcpy(v[1].name,"AC");strcpy(v[2].name,"AD");strcpy(v[3].name,"BA");strcpy(v[4].name,"BC");
strcpy(v[5].name,"BD");strcpy(v[6].name,"DA");strcpy(v[7].name,"DB");strcpy(v[8].name,"DC");strcpy(v[9].name,"EA");
strcpy(v[10].name,"EB");strcpy(v[11].name,"EC");strcpy(v[12].name,"ED");