第四章作业

第四章作业

实验作业

1.调试分析课本每一个例题,有可能的话更改成2-3个方法的新程序;

2.编程实现课本每一个编程习题。

3. 编程定义一个4X5矩阵和5X3矩阵,并计算它们的积。

4.编程输出1到n的平方的自然数构成的“魔方阵”,魔方阵是指它每一行和每一列及对角线之和均相等的方阵。

5.积累调试程序经验,收集错误信息原因(每个同学收集3-5条错误信息原因,并输入电脑形成文字)。


作业1、2:
习题一:
#include<iostream>
#include<iomanip>
using namespace std;

int main()
{
	int a[5];
	int i,j,t;
	cout<<"please input 5 numbers:\n";
		cin>>a[0];
	    cin>>a[1];
	    cin>>a[2];
 	    cin>>a[3];
	    cin>>a[4];     //输入5个数组元素
	cout<<" the numbers are:";
	for(i=0;i<5;i++)
		cout<<setw(4)<<a[i];
	cout<<endl;
	for(i=0;i<4;i++)
	for(j=0;j<4-i;j++)
		if(a[j]<a[j+1])
			{t=a[j];a[j]=a[j+1];a[j+1]=t;}
	cout<<" the sorted numbers are:";
	for(i=0;i<5;i++)
		cout<<setw(4)<<a[i];
	cout<<endl;

	return 0;
}

运行结果:

习题二:
#include<iostream>
#include<iomanip>
using namespace std;
int main()
{
	int i;
	int j;
	int big;
	int a[2][3];
	cout<<"请输入数组各个元素值:"<<endl;
	cin>>a[0][0];
	cin>>a[0][1];
	cin>>a[0][2];
	cin>>a[1][0];
	cin>>a[1][1];
	cin>>a[1][2];
	cout<<"the numbers are:"<<endl;
	for(i=0;i<2;i++)
	{
		for(j=0;j<3;j++)
			cout<<setw(4)<<a[i][j];
		cout<<endl;
	}
	big=a[0][0];
	for(i=0;i<2;i++)
		for(j=0;j<3;j++)
			if(a[i][j]>=big)
				big=a[i][j];
	for(i=0;i<2;i++)
		for(j=0;j<3;j++)
			if(a[i][j]==big)
	cout<<"the big number is:"<<"a["<<i<<"]["<<j<<"]="<<a[i][j]<<endl;

	return 0;
}
运行结果:

习题3:
#include<iostream>
#include<iomanip>
using namespace std;
int main()
{
	int i,n=0;
	int f[20]={1,1};
	for(i=2;i<20;i++)
		f[i]=f[i-2]+f[i-1];
	for(i=0;i<20;i++)
	{
		if(i%5==0)
			cout<<endl;
		cout<<setw(8)<<f[i];
	}
	cout<<endl;
	for(i=0;i<20;i++)
	{
		if(f[i]/100!=0&&f[i]/1000==0)
			n++;
	}
	cout<<"以上数列中共有三位数数量n="<<n<<endl;
	cout<<"第十六位数是"<<f[15]<<endl;

	return 0;
}

运行结果:


习题四:
#include<iostream>
using namespace std;
int main()
{
	char str[50];
	int len=0;
	cout<<"请输入一段字符串:";
	cin.get(str,50);
	while(str[len]!='\0')
		len++;
	cout<<"字符串"<<str<<"的长度为:"<<len<<endl;

	return 0;
}

运算结果:

习题五:
#include<iostream>
#include<cstring>
using namespace std;
int main()
{
	int len=0;
	char str[100];
	cout<<"请输入一段字符串:";
	cin.get(str,100);
	cout<<"字符串"<<str<<"的反向字符串为:";
	for(int i=strlen(str)-1;i>=0;i--)
		cout<<str[i];
	cout<<endl;
	while(str[len]!='\0')
		len++;
	cout<<"字符串"<<str<<"的长度为:"<<len<<endl;

	return 0;
}

运算结果:


习题六:
#include<iostream>
using namespace std;
int main()
{
	char s[50],s1[50];
	int i,k=0,len=0;
	cout<<"请输入一段字符串:";
	cin.get(s,50);
	for(i=0;s[i]!='\0';i++)
	{
		if(s[i]>='0'&&s[i]<='9');
		else
		{
			 s1[k++]=s[i];
			 len++;
		}
	}
	
	cout<<"更改后字符串:"<<endl;
	for(k=0;k<len;k++)
		cout<<s1[k];
		cout<<endl;
	cout<<"改后字符串长度len="<<len<<endl;
	return 0;
}

运算结果:

作业3:
#include<iostream>
#include<iomanip>
using namespace std;
int main()
{
	int i,j,n,m;
	int a[4][5],b[5][3],c[4][3];
	cout<<"请输入数组a各个元素值:"<<endl;
	for(i=0;i<4;i++)
		for(j=0;j<5;j++)
	cin>>a[i][j];
	cout<<"第一个矩阵:"<<endl;
	for(i=0;i<4;i++)
	{
		for(j=0;j<5;j++)
			cout<<setw(4)<<a[i][j];
		cout<<endl;
	}
	cout<<"请输入数组b各个元素值:"<<endl;
	for(i=0;i<5;i++)
		for(j=0;j<3;j++)
	cin>>b[i][j];
	cout<<"第二个矩阵:"<<endl;
	for(i=0;i<5;i++)
	{
		for(j=0;j<3;j++)
			cout<<setw(4)<<b[i][j];
		cout<<endl;
	}
	for(i=0;i<4;i++)
	{
		for(j=0;j<3;j++)
		for(m=0;m<5;m++)
		{
			n=a[i][m]*b[m][j];
			c[i][j]=n;
		}
		n=0;
	}
	cout<<"两矩阵相乘结果是:"<<endl;
	for(i=0;i<4;i++)
	{
		for(j=0;j<3;j++)
			cout<<setw(4)<<c[i][j];
		cout<<endl;
	}
	return 0;
}

运算结果:

作业4:
#include<iostream>
#include<iomanip>
using namespace std;
int main()
{
	int n,m=1,i,j;
	cout<<"请输入一个奇数n:"<<endl;
	int a[15][15];
	scanf("%d",&n);
	i=0,j=(n+1)/2-1;
	while(m<=n*n)
	{
		a[i][j]=m;
		m++,i--,j++;
		if((m-1)%n==0&&m>1)
			i=i+2,j=j-1;
		if(i<0)
			i=i+n;
		if(j>(n-1))
			j=j-n;
	}
	for(i=0;i<n;i++)
		 for(j=0;j<n;j++)
		 {
			  if(a[i][j]/10==0)
				  printf("%d   ",a[i][j]); 
			  else 
				  printf("%d  ",a[i][j]); 
			   if(j==(n-1))
				   printf("\n");
		 }

	return 0;
}

运算结果: (这道题是借鉴度娘的资源转化过来的)

作业5:收集错误信息原因
一般情况下是出现警告,运行不了,原因一般是 在一个工程中反复做 多个主程序,解决方法是将新输入的主程序拷贝下来,单独生成一个工程; 其他的错误还在慢慢探究原因中

2014/04/13
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 3
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值