C/C++程序设计实验报告3 | 数组实验

本文整理自博主本科大一《C/C++程序设计》专业课的课内实验报告,适合C语言初学者们学习、练习。

编译器:gcc 10.3.0

----

注:

1.虽然课程名为C++程序设计,但实际上当时校内该课的内容大部分其实都是C语言,C++的元素最多可能只是体现在输入输出。

2.博主当时给出的实验代码可能并不是最优解,这里只是整理并未重编,因此希望各位前来学习的小伙伴们注意辨别,独立思考。

目录

一、实验目的

二、实验内容

1、编写程序,键盘输入10个整数,对其进行冒泡排序。

2、输入一个整数,将其插入一个有序整型数组,保证插入后依然有序,并输出插入后的数组。有序数组的内容可以通过数组赋初值设定。

3、利用二维数组实现杨辉三角形的输出。 

4、删除字符串中某一个字符,如this is a boy.删除字符‘i’后,变成:ths s a boy.  

三、实验总结


一、实验目的

  1. 熟悉掌握一维数组的定义和使用。
  2. 掌握一维数组的常见算法(冒泡排序,有序数组的插入等)。
  3. 掌握利用字符数组存放字符串,以及字符串的常见操作(复制,比较,连接等)。
  4. 进一步学习调试程序。

二、实验内容

1、编写程序,键盘输入10个整数,对其进行冒泡排序。

 源代码:

#include<iostream>
#define ARR_SIZE 10
using namespace std;
//编写程序,键盘输入10个整数,对其进行冒泡排序。
int main(){
	int a[ARR_SIZE];
	int i,j;
	cout<<"please input 10 integer: "<<endl;
	for(i=0;i<ARR_SIZE;i++){
		cin>>a[i];
	}
	
	//升序排序
	int xch;
	for(i=0;i<ARR_SIZE-1;i++){
		xch = 0;
		for(j=0;j<ARR_SIZE-1-i;j++){
			int tmp;
			if(a[j]>a[j+1]){
				tmp=a[j];
				a[j]=a[j+1];
				a[j+1]=tmp;
				xch = 1;
			}
		}
		if(!xch){
			break;
		}
	}
	
	cout<<"After convert,the ordered array is: "<<endl;
	for(i=0;i<ARR_SIZE;i++){
		cout<<a[i]<<'\0';
	}
	return 0;
}

运行结果: 

2、输入一个整数,将其插入一个有序整型数组,保证插入后依然有序,并输出插入后的数组。有序数组的内容可以通过数组赋初值设定。

源代码:

#include<iostream>
#define ARR_SIZE 6
using namespace std;
//输入一个整数,将其插入一个有序整型数组,保证插入后依然有序,并输出插入后的数组。
//有序数组的内容可以通过数组赋初值设定。
int main(){
	int a[ARR_SIZE];
	int i,j;
	cout<<"please input 5 integer: "<<endl;
	for(i=0;i<ARR_SIZE-1;i++){
		cin>>a[i];
	}
	for(i=0;i<ARR_SIZE-2;i++){
		for(j=0;j<ARR_SIZE-2-i;j++){
			int tmp;
			if(a[j]>a[j+1]){
				tmp=a[j];
				a[j]=a[j+1];
				a[j+1]=tmp;
			}
		}
	}
	cout<<"After convert,the ordered array is: "<<endl;
	for(i=0;i<ARR_SIZE-1;i++){
		cout<<a[i]<<'\0';
	}
	cout<<endl;
	
	int n;
	cout<<"please enter one more integer:   ";
	cin>>n;
	for(i=ARR_SIZE-2;i>=0;i--){
		if(n<a[i]){
			a[i+1]=a[i];
		}else{
			a[i+1]=n;
			break;
		}
	}
	cout<<"the new array is:  "<<endl;
	for(i=0;i<ARR_SIZE;i++){
		cout<<a[i]<<'\t';
	}
	
	return 0;
}

运行结果: 

3、利用二维数组实现杨辉三角形的输出。 

源代码: 

#include<iostream>
#define NUMBER 15
using namespace std;
int main(){
	int a[NUMBER][NUMBER];
	int i,j;
	
	a[0][0]=1;
	a[1][0]=1;
	a[1][1]=1;
	cout<<a[0][0]<<endl;
	cout<<a[1][0]<<'\t'<<a[1][1]<<endl;
	for(i=2;i<NUMBER;i++){
		a[i][0]=1;
		a[i][i]=1;
		cout<<a[i][0]<<'\t';
		for(j=1;j<i;j++){
			a[i][j]=a[i-1][j-1]+a[i-1][j];
			cout<<a[i][j]<<'\t';
		}
		cout<<a[i][i]<<endl;
	}
    return 0;
}

运行结果: 

4、删除字符串中某一个字符,如this is a boy.删除字符‘i’后,变成:ths s a boy.  

说明:

  1. 通过字符数组实现  
  2. 字符串和待删除字符都通过键盘输入 

 源代码: 

#include<iostream>
#include<string.h>
using namespace std;


//删除字符串中某一个字符,如this is a boy.删除字符‘i’后,变成:ths s a boy.  
//说明:1)通过字符数组实现  
//2)字符串和待删除字符都通过键盘输入
int main(){
	char str[101];
	char c;
	int i;
	gets(str);
	cout<<"您输入的字符串为:"<<endl;
	puts(str);
	cout<<"请输入您要删去的一个字符:"<<endl;
	cin>>c;
	char tmp=127;
	
	for(i=0;str[i]!='\0';i++){
		if(str[i]==c){
			str[i]=tmp;
		}
	}
	for(i=0;str[i]!='\0';i++){
		cout<<str[i];
	}
//		字符串中的第i个字符恰好是输入的字符
//	就把该字符替换成127
//	如果字符串中的第二个字符恰好是输入的字符
//	就把该字符替换成127
//	如果字符串中的第三个字符恰好是输入的字符
//	就把该字符替换成127
    return 0;
}

运行结果: 


三、实验总结

1.通过本次实验,我能够独立且顺畅地完成以上所有实验任务。

2.我熟悉掌握一维数组二维数组的定义和使用。

3.能掌握一维数组的常见算法(冒泡排序,有序数组的插入等)。

4.掌握利用字符数组存放字符串,以及字符串的常见操作(复制,比较,连接等)。

5.能够使用调试程序来debug寻找问题

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值