C++改错题目

来源:百度知道 编辑:UC知道 时间:2024/05/24 05:09:35
本题欲将整数12插入到原有序数组中。
【要求】只允许在原语句上进行修改,可以增加个别说明语句,但不能增加或删除整条程序语句或修改算法。
【注意】源程序文件命名为“学号f1.cpp”存放在学号文件夹中。
含错的源程序如下:
#include<iostream.h>
#include<iomanip.h>
void insertSort(int *x,int key){
for(int i=0;i<n;i++) //搜索插入位置
if(key<=x[i]) return;
if(i=n) x[n]=key;
else{
for(int j=n;j>=i;j--) x[j]=x[j-1]; //移动元素以留出插入位置
x[j]=key;
}
void main(void){
int i,y[10]={1,3,5,7,9,11,13,15,17,19};
insertSort(y[],10,12); //将整数12插入到有序数组中
for(i=0;i<11;i++)cout<<setw(5)<<y[i];
}

#include <iostream>
#include <iomanip>

void insertSort(int *x,int n, int key) //形参加入一个n
{
int i, j; //声明i跟j
for(i=0;i<n;i++) //搜索插入位置
if(key<=x[i])
break; //把return改成break
if(i==n)
x[n]=key;
else
{
for(j=n;j>i;j--) //把>=改成>
x[j]=x[j-1]; //移动元素以留出插入位置
x[j]=key;
} //缺少反花括号
}
void main(void)
{
int i,y[20]={1,3,5,7,9,11,13,15,17,19}; //把数组加大
insertSort(y,10,12); //将整数12插入到有序数组中
for(i=0;i<11;i++)
cout<<setw(5)<<y[i];
}