|
马上注册,结交更多好友,享用更多功能^_^
您需要 登录 才可以下载或查看,没有账号?立即注册
x
实现数组的插入,麻烦帮忙看一下,为什么61和68行插入的insert_num不一样了?谢谢。
#include <iostream>
#include <iomanip>
using namespace std;
int main()
{
//实现数组的插入
double nums[4]={2,3,4,1};
int nums_count=sizeof(nums)/sizeof(double);
double insert_num;
int insert_index=0;
//cout<<nums_count<<endl;
cout<<"原始数组是:";
for(int i=0;i<nums_count;i++)
{
cout<<nums[i]<<setw(3);
}
//对数组进行排序
double tmp;
for(int i=0;i<nums_count;i++)
{
for(int j=0;j<nums_count;j++)
{
if(nums[j]<nums[j+1])
{
tmp=nums[j];
nums[j]=nums[j+1];
nums[j+1]=tmp;
}
}
}
//排序后
cout<<endl<<"排序后的数组是:";
for(int i=0;i<nums_count;i++)
{
cout<<nums[i]<<setw(3);
}
//插入:
cout<<" 请输入要插入的数字:";
cin>>insert_num;
//cout<<insert_num<<"vccc"<<endl;
insert_index=nums_count;
//1 找到第一个比插入数字大的位置insert_index
for (int i=0;i<nums_count; i++)
{
if(insert_num>nums[i])
{
insert_index=i;
break;
}
}
cout<<"插入的insert_num:"<<insert_num<<endl; //问题点,第61行
//2 从最后一位开始,将前一位的数字复制到后一位去
for (int i=nums_count-1;i>=insert_index;i--)
{
nums[i+1]=nums[i];
}
cout<<"插入的insert_num:"<<insert_num<<endl; //问题点,第68行
//3 将要插入的数字赋值给insert_index位置的元素
nums[insert_index]=insert_num;
//4 数组总长度+1
nums_count++;
//插入后
cout<<endl<<"插入后的数组是:";
for(int i=0;i<nums_count;i++)
{
cout<<nums[i]<<setw(3);
}
return 0;
}
|
|