⑵运行结果截图
5.【程序调试】
下列程序运行均不正确。请改正其中的语法错误使得程序可以编译成功。程序编译后,请比较输出结果与实例输出,并对可能存在的逻辑错误进行修改。实例输出显示了程序如果正确应该输出的结果。 实例输出:
错误代码
1 #include
3 using namespace std;
4 #include
6 void initialize ( char [ ], int * ); 7 void input ( const char [ ], int * ); 8 void print ( const char *, const int ); 9 void growOlder( const char [ ], int * ); 10 bool comparePeople( const char *, const int *, 11 const char *, const int *); 12 13 int main() 14 {
15 char name1[ 25 ], name2 [ 25 ]; 16 int age1, age2; 17
18 initialize (name1, &age1); 19 initialize( name2, &age2 ); 20
21 print ( name1, *age1 ); 22 print ( name2, *age2 ); 23
24 input( name1, &age1); 25 input ( name2, &age2);
26
27 print (& name1, &age1Ptr ); 28 print (& name2, &age2Ptr ); 29
30 growOlder ( name2, age2); 31
32 if ( comparePeople( name1, &age1, name2, &age2 ) ) 33 cout << “Both people have the same name and age” 34 << endl; 35
36 return 0; 37 } 38
39 void input( const char name [ ], int *age ) 40 {
41 cout << “Enter a name: “; 42 cin >> name; 43
44 cout << “Enter an age: “; 45 cin >> age; 46 cout << endl; 47 }
48
49 void initialize( char name[ ], int * age ) 50 {
51 name = “”; 52 age = 0; 53 } 54
55 void print ( const char name[ ], const int age ) 56 {
57 cout<< “ The value stored in variable name is: “ 58 << name << endl
59 << “The value stored in variable age is: “ 60 << age << endl << endl; 61 } 62
63 void growOlder( const char name[ ], int * age) 64 {
65 cout << name << “ has grown one year older\\n\\n”; 66 *age++; 67 } 68
69 bool comparePeople( const char * name1, const int * age1,
70 const char * name2, const int * age2 ) 71 {
72 return ( age1 == age2 && strcmp ( name1, name2 ) ); 73 }
⑴修改后程序代码,改过的语句标识红色,并添加注释。
⑵运行结果截图