为什么程序运行不出结果?a==3时的插入结果好像也不对,请问怎么改?

为什么程序运行不出结果?a==3时的插入结果好像也不对,请问怎么改?

#include <iostream>
using namespace std;	
int a;
int shuzu[5];
void display()
{
	cout<<"******************************************************"<<endl;
	cout<<"\t\t1--插入数据"<<endl;
	cout<<"\t\t2--显示所有数据"<<endl;
	cout<<"\t\t3--在指定位置处插入数据"<<endl;
	cout<<"\t\t4--查询能被3整除的数据"<<endl;
	cout<<"\t\t0--退出"<<endl;
	cout<<"******************************************************"<<endl;
	cout<<"请输入对应的数字进行操作:";
	cin>>a;
}
void showData(int a[], int length) {
    for (int i = 0; i < length; i++) {
        cout<<a[i]<<"     ";
    }
    cout<<endl;
}
void input()
{
	for (int i=0;i<5;i++)
		{
			cout<<"请输入第"<<(i+1)<<"个数据:"<<endl;
			int num;
			cin>>num;
			shuzu[i]=num;
		}
	cout<<"数组元素为:"<<endl;
	showData(shuzu, sizeof(shuzu) / sizeof(shuzu[0]));
}
void insert()
{
	cout<<"请输入要插入的数据:"<<endl;
	int num1;
	cin>>num1;
	cout<<"请输入要插入数据的位置:"<<endl;
	int num2;
	cin>>num2;
	int l=(sizeof(shuzu) / sizeof(shuzu[0]))-1;
	for (int i=l;i>num2;i--)
	{
		shuzu[i+1]=shuzu[i];
	}
	shuzu[i]=num1;
	showData(shuzu, sizeof(shuzu) / sizeof(shuzu[0])); 
			
}
int main()
{
	display();
	for(int i=1;i<-1;)
	{
		if(a==1)
		{
			input();
			display();
			continue;
		}
		if(a==2)
		{
			cout<<"数组元素为:"<<endl;
			showData(shuzu, sizeof(shuzu) / sizeof(shuzu[0])); 
			display();
			continue;
		}
		if(a==3)
		{
			insert();
			display();
			continue;
		}
		if(a==4)
		{
			cout<<"退出程序"<<endl;
			break;
		}
	}

	return 0;
}


正在回答 回答被采纳积分+1

登陆购买课程后可参与讨论,去登陆

2回答
imooc_澈 2018-05-07 01:46:25

定义长度为5,那么最初可以输入4个值,留一个位置做插入一个数据的功能,参考代码如下:

http://img1.sycdn.imooc.com//climg/5aef3f660001461b03760231.jpg

祝学习愉快~

  • 提问者 Michelleqyh #1
    定义长度为5,最初输入4个值的话,输出结果在最后会多出个0,这样就不对了,因为用户并没有输入0
    2018-05-07 10:16:15
  • Tender10 回复 提问者 Michelleqyh #2
    在进行数组查询的时候,可以进行一个判断啊,遍历数组的时候,加一个if判断,判断数组的最后一位是否为0,如果是就不输出即可。
    2018-05-07 10:47:27
  • 提问者 Michelleqyh 回复 Tender10 #3
    你这个方法不行,如果用户自己输入的一个数就是0呢
    2018-05-07 10:57:40
imooc_澈 2018-05-06 17:44:05

您好,循环条件有问题,i<-1,无法进入循环,正确代码参考如下:

http://img1.sycdn.imooc.com//climg/5aeece480001cf7404380417.jpg

如果解决了你的问题,请采纳,祝学习愉快~

  • 提问者 Michelleqyh #1
    请问已经定义了shuzu[5],插入一个数字的代码怎么写?
    2018-05-06 21:40:21
问题已解决,确定采纳
还有疑问,暂不采纳

恭喜解决一个难题,获得1积分~

来为老师/同学的回答评分吧

0 星
C++零基础入门 热门编程语言 二级考试必备
  • 参与学习       529    人
  • 提交作业       110    份
  • 解答问题       594    个

无论您是零基础、还是想晋升,亦或是想转型,C++无疑都是最佳选择。本路径共分为基础语法、指针与引用、面向对象三大模块,为你开启入门C++编程的大门!

了解课程
请稍等 ...
意见反馈 帮助中心 APP下载
官方微信

在线咨询

领取优惠

免费试听

领取大纲

扫描二维码,添加
你的专属老师