天天看点

第四章实验作业第四章实验作业

第四章实验作业

1 课本习题

1 例4.1 数组元素的引用举例

/**************************************
**  例题4.1  数组元素的引用推荐     **
**  自动化1121  李庆典              **
**************************************/

#include<iostream>        //预编译处理命令
using namespace std;      //标准名字空间

int main()                //主函数 
{
	int a[10];
	int i;
	for(i=0;i<10;i++)
		a[i]=i*2+2;
	for(i=0;i<10;i++)
	{
		cout<<a[i]<<'\t';
		if((i+1)%5 ==0)
			cout<<endl;
	}
	return 0;
}
           

例题4.2  输入一个程序计算考试成绩

/**************************************
**  例题4.2  编程计算考试成绩     **
**  自动化1121  李庆典              **
**************************************/

#include<iostream>        //预编译处理命令
using namespace std;      //标准名字空间

int main()                //主函数 
{
    int i,math[33],n;
	float aver =0.0;      //平均分
	int a=0;              //不及格人数
	int b=0;              //90分以上人数
	cout<<"请输入学生人数:";
		cin>>n;
	cout<<"请依次输入学生的成绩:";
		for(i=0;i<n;i++)
		{
			cin>>math[i];
			aver+=math[i];
		}
		aver/=n;
		for(i=0;i<n;i++)
		{
			if(math[i]<60)
				a++;
			if(math[i]>=90)
				b++;
		}
		cout<<"平均分为:"<<aver<<endl;
		cout<<"90分以上的人数为"<<b<<endl;
		cout<<"不及格的人数为"<<a<<endl;


	return 0;
}
           

运算结果如图

第四章实验作业第四章实验作业

例题4.3 找出一个数组中最大的元素

/**************************************
**  例题4.3  计算数组中最大的元素   **
**  自动化1121  李庆典              **
**************************************/

#include<iostream>        //预编译处理命令
#include<iomanip>         //控制符命令文件调用
using namespace std;      //标准名字空间

int main()                //主函数 
{
  int a[10],i,max;
  cout<<"请输入10个数"<<endl;
  for(i=0;i<10;i++)
	  cin>>a[i];
  cout<<"输入的10个数分别为";
  for(i=0;i<10;i++)
	  cout<<setw(5)<<a[i];
  cout<<endl;

  max=a[0];
  for(i=1;i<10;i++)
	  if(a[i]>=max)
		  max=a[i];
	  cout<<"这10个数中最大的为"<<max<<endl;


	return 0;
}
           

例题4.4  练习使用冒泡法

/**************************************
**  例题4.4  练习用冒泡法对数进行排序   **
**  自动化1121  李庆典              **
**************************************/

#include<iostream>        //预编译处理命令
#include<iomanip>         //控制符命令文件调用
using namespace std;      //标准名字空间

int main()                //主函数 
{
	int a[10];
	int i,j,t;
	cout<<"请输入10个数字:";
	for(i=0;i<10;i++)
		cin>>a[i];       //输入数组元素
	cout<<"输入的10个数分别为:";
	for(i=0;i<10;i++)    //输出数组元素
		cout<<setw(5)<<a[i];
	cout<<endl;
	for(i=0;i<9;i++)     //冒泡法精华
	{
		for(j=0;j<9-i;j++)
		{
			if(a[j]>a[j+1])
			{
				t=a[j];a[j]=a[j+1];a[j+1]=t;
			}
		}
	}		
	
	cout<<"按照大到小排序的数为:" ;    //输出排序后的元素
	for(i=0;i<10;i++)
		cout<<setw(5)<<a[i];
	cout<<endl;
	
	return 0;
}
           

例题4.5  用数组来处理fibonacci数列问题

/**************************************
**  例题4.5  用一维数组来处理fibonacc   **
**  自动化1121  李庆典              **
**************************************/

#include<iostream>        //预编译处理命令
#include<iomanip>         //控制符命令文件调用
using namespace std;      //标准名字空间

int main()                //主函数 
{
	int i;
	int f[40]={1,1};
	for(i=2;i<40;i++)
		f[i]=f[i-2]+f[i-1];   //将前40个数存入数组
	for(i=0;i<40;i++)
	{
		if(i%4 ==0)
			cout<<endl;
		cout<<setw(12)<<f[i];
	}
	cout<<endl;
	
	return 0;
}
           

例题4.6 二维数组的赋值举例

/**************************************
**  例题4.6 对二维数组进行赋值   **
**  自动化1121  李庆典              **
**************************************/

#include<iostream>        //预编译处理命令
#include<iomanip>         //控制符命令文件调用
using namespace std;      //标准名字空间

int main()                //主函数 
{
	int i;
	int j;
	int a[5][5];


	for(i=0;i<5;i++)       //二维数组赋值精华
	{
		for(j=0;j<5;j++)
		{
			if(i%2 ==0)
				a[i][j] = i*5+j+1;
			else
				a[i][4-j] =i*5+j+1;
		}
	}

	for(i=0;i<5;i++)      //二维数组输出精华
	{
		for(j=0;j<5;j++)
			cout<<setw(5)<<a[i][j];
		cout<<endl;
	}

	return 0;
}
           

 例题4.7 

输入一个a[2][3]的值,然后求这个数组中最大的值以及下标,,这是我见过的最坑爹的例题了没有之一,完全跟题目完全不同好不!!完全就是不知道错哪里的文不对题好不!!不吐槽了!!!!最终还是把自己写的程序调试好了 ,刚好符合题目要求就好了 

/**************************************
**  二维数组程序举例        **
**  自动化1121 李庆典       **
**************************************/

#include<iostream>                //预编译处理命令
#include<iomanip>                 //控制命令文件头
using namespace std;              //标准名字空间

int main ()                       //主函数
{
	int i,j;
	int a[2][3];

	for(i=0;i<2;i++)               //输入a[i][j]
	{
		for(j=0;j<3;j++)
		{
			cout<<"a["<<i<<"]["<<j<<"]=";
			cin>>a[i][j];
		}
	}

	cout<<"该二维数组为"<<endl;

	for(i=0;i<2;i++)               //显示a[i][j]
	{
		for(j=0;j<3;j++)
		{
			cout<<setw(5)<<a[i][j];
		}
		cout<<endl;
	}

	cout<<endl
		<<"此二维数组的最大的元素为";

	int max =a[2][3] ;
	int c=2,b=3;

	for(i=0;i<2;i++)               //比较最大的元素
	{
		for(j=0;j<3;j++)
		{
			if(max<=a[i][j])
			{
				max=a[i][j];
				c=i;
				b=j;
			}

		}	

	}cout<<"a["<<c<<"]["<<b<<"]="<<max;

	cout<<endl;



	return 0;
}
           

运行结果如下啦

第四章实验作业第四章实验作业

例题4.8 主要是对于数组中的字符串出现空格情况的输入,这里我们运用到了cin.get(a,50,规定的默认结束符),默认为回车,这个输入流函数能够很好的帮我们输入字符数组的赋值,我们还是需要加强练习。

/**************************************
**  输出一个含空格的字符窜        **
**  自动化1121 李庆典             **
**************************************/

#include<iostream>                //预编译处理命令
#include<iomanip>                 //控制命令文件头
using namespace std;              //标准名字空间

int main ()                       //主函数
{
	char str[50];
	cout<<"请输入一个字符窜:";
	cin.get(str,50);
	cout<<"输出结果为:";
	cout<<str<<endl;




	return 0;
}
           

例题 4.9 从键盘读入一个字符串,反向输出每一个字符  这里出现了cstring 函数,用来控制处理数组,如例题中也出现了strlen函数,用来控制输出字符串的长度。

/**************************************
**  输入一个字符串后反向输出        **
**  自动化1121 李庆典               **
**************************************/

#include<iostream>                //预编译处理命令
#include<iomanip>                 //控制命令文件头
#include<cstring>                 //字符串处理函数文件头
using namespace std;              //标准名字空间

int main ()                       //主函数
{
	char a[100];
	cout<<"请输入一个字符串"<<endl;
	cin.get(a,100);
	cout<<"字符串"<<a<<"的反向字符串为:";    
	for(int i=strlen(a)-1;i>=0;i--)            //strlen输出字符串的长度
		cout<<a[i];
	cout<<endl;


	return 0;
}
           

例题4.10

输入一个句子后求这个句子中单词最长的那个单词并输出,这里是遇到了两个循环,一个为判断句子的长度,一个为区分每一个单词后记录长度和位置,不过只是记录当前最长的单词的位置与长度,应该可以再优化一下重新计算,改天再去用for或者do-while重新改写一下程序吧

/**************************************
**  找出一句话中最长的单词        **
**  自动化1121 李庆典               **
**************************************/

#include<iostream>                //预编译处理命令
#include<iomanip>                 //控制命令文件头
#include<cstring>                 //字符串处理函数文件头
using namespace std;              //标准名字空间

int main ()                       //主函数
{
	char a[100];
	cout<<"请输入一句话:"<<endl;
	cin.get(a,100);
	int i=0,pl=0,maxpl=0,pset=0;
	while(a[i]!='\0')                    //控制结束整个循环
	{
		while(a[i]!=' '&&a[i]!='\0')     //区分开每个单词并计算长度
		{
			pl++;
			i++;
		}
		if(pl>maxpl)                     //判断单词长度是否最长,记录长度与位置
		{
			pset=i-pl;
			maxpl=pl;
		}
		while(a[i]==' ')                  //跳过空格继续计算下个单词0
			i++;
		pl=0;                             //对pl的起始赋值
	}
cout<<"该句子中最长的单词为:";
for(i=0;i<maxpl;i++)
cout<<a[pset+i];
cout<<endl;


	return 0;
}
           

2书里的编程例题

1,在数组中输入几个数并按照大小排序,冒泡法的精髓

/**************************************
**  输入几个数并按顺序排列       **
**  自动化1121 李庆典               **
**************************************/

#include<iostream>                //预编译处理命令
#include<iomanip>                 //控制命令文件头
#include<cstring>                 //字符串处理函数文件头
using namespace std;              //标准名字空间

int main ()                       //主函数
{
	int a[50],b,i,j,S;
	cout<<"请输入你要输入的数字的个数(不要超过50个)"<<endl;
	cin>>b;
	cout<<"请输入你要输入的所有个数(不要超过"<<b<<"个)"<<endl;
	for(i=0;i<b;i++)
		cin>>a[i];
	for(i=0;i<4;i++)
		for(j=0;j<4-i;j++)
			if(a[j]<a[j+1])
			{
				S=a[j];
				a[j]=a[j+1];
				a[j+1]=S;
			}
	cout<<"从大到小的排列为:";
	for(i=0;i<b;i++)
		cout<<setw(5)<<a[i];
	cout<<endl;

	return 0;
}
           

统计一句话中的各种字符的多少并输出

/**************************************
**  统计一个数组中的大小写字母等      **
**  自动化1121 李庆典               **
**************************************/

#include<iostream>                //预编译处理命令
#include<iomanip>                 //控制命令文件头
#include<cstring>                 //字符串处理函数文件头
using namespace std;              //标准名字空间

int main ()                       //主函数
{
	
	char string[50];               
	cout<<"请输入一句话:";
	cin.getline(string,50);
	int da=0,xi=0,b=0,c=0,d=0;
	for(int i=0;string[i]!='\0';i++)
		if(string[i]>='A'&&string[i]<='Z') 
			da++;
		else if(string[i]>='a'&&string[i]<='z')
			xi++;
		else if(string[i]==' ') 
			b++;
		else if(string[i]>='0'&&string[i]<='9') 
			c++;
		else d++;
		cout<<"大写字符有:"<<da<<"个"<<endl;
		cout<<"小写字符有:"<<xi<<"个"<<endl;
		cout<<"数字字符有:"<<c<<"个"<<endl;
		cout<<"其他字符有:"<<d<<"个"<<endl;
		cout<<"空格有:"<<b<<"个"<<endl;
		
		return 0;
		
}
           

 输入一个字符串,去除数字后输出

/**************************************
**  删除字符串中的数字      **
**  自动化1121 李庆典               **
**************************************/

#include<iostream>                //预编译处理命令
#include<iomanip>                 //控制命令文件头
#include<cstring>                 //字符串处理函数文件头
using namespace std;              //标准名字空间

int main ()                       //主函数
{
	char a[100],b[100];
	int x=0,y=0;
	cout<<"请输入一个字符串"<<endl;
	cin.get(a,100);
	for(x=0;a[x];x++)
	{
		if(a[x]>='0'&&a[x]<='9')
			continue;
		b[y]=a[x];
		y++;
	}
	int z=y-1;
	
	cout<<"输出结果为:";
	for(y=0;y<=z;y++)
		cout<<b[y];
	
	cout<<'\t'<<"该字符串长度为"<<z+1
		<<endl;
	
	return 0;
	
}
           

其他慢慢更来可好 ?

第四章实验作业第四章实验作业

继续阅读