中南大学C++程序设计实践思考题答案

发布时间 : 星期六 文章中南大学C++程序设计实践思考题答案更新完毕开始阅读

17 cin.get(); }

int lookup(int x[],int n,int y) //函数定义 {int flag=-1; //首先假设找不到 int i;

for(i=0;i

break; //找到了则不必再往后找

} return flag; }

-------------------------------------------------------------------------------------------------- 思考题2. shi_6_3_2.cpp

#include #define N 5

int max(int [],int ); //函数说明 void main()

{ int i, a[N],xMax;

cout<<\请输入N(=5)个整数:\ for(i=0;i>a[i];

xMax=max(a,N);

cout<<\数组中最大的的整数:\cout<<\谢谢使用本程序,再见!\

cin.get(); cin.get(); }

int max(int x[],int n)

{int i,r=x[0]; //首先假设 x[0] 最大, 且存于 r 中 for(i=1;ir) r=x[i]; // 发现了更大 的则 修改 r return r; // r 中 存有最大 元素的值

}

---------------------------------------------------------------------------

17

思考题3. shi_6_3_3.cpp

#include #define N 5

void invert(int [],int); //函数说明 void main() { int i, a[N];

cout<<\请输入N(=5)个整数:\ for(i=0;i>a[i]; invert(a,N);

cout<<\这些数 逆序输出如下:\\n\ for(i=0;i

cout<<\谢谢使用本程序,再见!\cin.get(); cin.get(); }

void invert(int x[],int n) {int i=0, j=n-1,t; // while(i

t=x[i]; x[i]=x[j]; x[j]=t; i++;j--; }

return; }

----------------------------------------------------------

思考题4. shi_6_3_4.cpp #include

#define M 3 //M 行 #define N 4 //N 列

void main() {

int num[M][N]; //={{1,6,9}, {3,5,4}, {2,7,8}}; int i,j,it,itt, t,jt,exist=0;

cout<<\请输入 3 行 4 列 的 二维 数组:\ for (i=0;i>num[i][j];

18

19 for (i=0;i

{ t=num[i][0]; jt=0; for (j=0;j

if ( t

for(it=0;it

if ( t>num[it][jt]){ t=num[it][jt], itt=it; } if (i==itt) { exist=1;break;} }

if (exist) cout<<\鞍点为 \else cout<<\无鞍点\

cout<<\谢谢使用本程序,再见!\cin.get(); cin.get(); }

--------------------------------------------------------

思考题5. shi_6_3_5.cpp

改正: 题目中添加 3 字 5.对数组A中的N个整数从小到大进行连续编号,要求不能改变这N个数在数组A中的存放顺序,且相同的数编号也相同。例如, 若数组A中数为(5,3,4,7,3,5,6), 则输出为(3,1,2,5,1,3,4)。

分析:采用3个数组,它们元素值含义如下:

19

b的初始值0b[0]1b[1]2b[2]3b[3]4b[4]5b[5]6b[6]5a[0]3a[1]4a[2]7a[3]3a[4]5a[5]6a[6]1b[0]4b[1]2b[2]0b[3]5b[4]6b[5]3b[6]a[b[0]]≤a[b[1]] ≤、...、≤a[b[N-1]]3c[0]1c[1]2c[2]5c[3]1c[4]3c[5]4c[6]a、b、c数组元素值含义示意图

#define N 7

#include #include using namespace std; int main( ) {int i,j,t,k,ik;

int a[N],b[N],c[N]; cout<<\ input N numbers:\for (i=0;i

cin>>a[i]; //从键盘上输入N个元素,a[0]保存第一个数据

cout<<\数组各元素的值:\for(i=0;i

cout<

for (i=0;i

for (i=0;i

if (a[b[k]]>a[b[j]]) k=j; //若发现某个a[b[j]]小于a[b[k]],则将k修改为j if (k!=i)

20

联系合同范文客服:xxxxx#qq.com(#替换为@)