使用VC6打开考生文件夹下的源程序文件modi1.cpp,但该程序运行有问题,请改正main函数中的错误,使程序的输出结果是: 1 1 2 2 3 3 4 4 5 5 6 6 7 7 8 8 9 9 注意:不要改动main函数,不能增行或删行,也不能更改程

admin2016-10-28  19

问题 使用VC6打开考生文件夹下的源程序文件modi1.cpp,但该程序运行有问题,请改正main函数中的错误,使程序的输出结果是:
1 1 2 2 3 3
4 4 5 5 6 6
7 7 8 8 9 9
注意:不要改动main函数,不能增行或删行,也不能更改程序的结构,错误的语句在//******error******的下面。
#include<iostream.h>
#include<iomanip.h>
void main(){
int a[3][3]={{1,2,3),{4,5,6},{7,8,9}};
int*p,i;
//********error********
p=a;
for(i=0;i<9;i++){
cout<<setw(2)<<*(p+i);
//********error********
cout<<setw(2)<<*(a+i);
if(i%3==2)cout<<endl;
}
}

选项

答案(1)p=&a[0][0]; (2)tout<<setw(2)<<*(*a+i);

解析 (1)打开modi1.cpp,调试程序,显示错误提示为第一标识下“modil.cpp(7):errorC2440:’=’:cannot convert from’int[3][3]’to’int*’”,a为二维数组型变量,将其值赋值给p,应该是p指向数组a的起始位置,即“p=&a[0][0];”。
(2)程序中第2个标识下的“cout<<setw(2)<<*(a+i);”语句应该是输出数组a中元素的值,而该语句是*(a+i)指向数组第i个位置,要指向其值应该是*(*a+i),所以第2个标识下的语句改为“cout<<setw(2<<*(*a+i):”。
转载请注明原文地址:https://kaotiyun.com/show/f7Np777K
0

最新回复(0)