请哪一位高手告诉俺这个C++的错误在哪里?

来源:百度知道 编辑:UC知道 时间:2024/06/01 22:35:23
#include<iostream.h>
main()
{
char life_insurance[1];
char health[1];
int age=50;
health='B';
if(age<=55 && health == 'G')
life_insurance='Y';
if(age<=55 && health == 'B')
life_insurance='N';
if(age>55)
life_insurance='N';

cout<<life insurance :<<life_insurance<<"\n";
}

1.health='B'; //health是地址,不能赋值,而且还赋的是一个char值。
2.life_insurance='Y'; life_insurance='N'; //同上的错误。
3.cout<<life insurance :<<life_insurance<<"\n"; //life insurance :必须要用双引号才能当字符串。如:"life insurance :"。另外life_insurance只有一个元素,这样输出的话,结果不确定,因为字符串需要结尾加一个空字符(\0),才能以这种方式输出。

改正后如下,可以编译通过,但是打印结果为乱码:
#include<iostream.h>

void main(void)
{
char life_insurance[1];
char health[1];
int age = 50;

health[0] = 'B';

if(age <= 55 && health[0] == 'G')
life_insurance[0] = 'Y';

if(age <= 55 && health[0] == 'B')
life_insurance[0] = 'N';

if(age > 55)
life_insurance[0] = 'N';

cout << "life insurance :" << life_insurance << "\n";
}

错的地方太多了,主要是 health[1]是一个数组,你后面全当成单个元素用了

#incl