第六周作业

第四章 数组学习要求和实验

      学习要求

理解数组的基本概念,了解数组存储方法。

掌握一维和二维数组定义格式和数组元素使用。了解多维数组的定义和引用形式。

掌握字答数组的定义、字符数组与字符串的关系。

掌握常用字符串处理函数的使用。

进一步掌握循环程序设计技巧和方法。

进一步积累程序调试经验。

      实验作业

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

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

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

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

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

      作业要求

网上提交各个程序和相关要求的文字。

可以分两个博客文章来交。前2个题和后3个题各放到一个博客文章中提交。



1.1

#include<iostream>  
using namespace std;  
  
int main()  
{  
    double a[5],b;  
    int i,j,k,l;  
    cout<<"请任意输入5个数"<<endl;  
    for(i=0;i<5;i++)  
        cin>>a[i];  
  
    for(j=0;j<5;j++)  
        {  
            for(k=j;k<5;k++)  
            if(a[k]>a[j])  
            b=a[k],a[k]=a[j],a[j]=b;  
        }  
  
    cout<<"5个数从大到小排列依次为"<<":"<<endl;  
  
    for(l=0;l<5;l++)  
    {  
        cout<<a[l]<<endl;  
    }  
return 0;  
}  




1.2

#include<iostream>  
#include<iomanip>  
using namespace std;  
  
int main()  
{  
    int a[2][3];  
    int i,j,big;  
    cout<<"请输入二行三列二维数组的元素值:"<<endl;  
            
    for(i=0;i<2;i++)  
    for(j=0;j<3;j++)  
    {   
        cout<<"a["<<i<<"]"<<"["<<j<<"]=";  
        cin>>a[i][j];  
    }  
    cout<<"该二维数组为:";  
    for(i=0;i<2;i++)  
    for(j=0;j<3;j++)  
    {     
        if(j%3==0)  
        cout<<endl;  
        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<<"该数组中最大元素为:"<<"a["<<i<<"]"<<"["<<j<<"]="<<a[i][j]<<endl;  
}  



1.3

#include<iostream>  
using namespace std;  
int function(int n);  
int main()  
{  
    int i,count;  
    count=0;  
    for(i=1;i<=20;i++)  
    {  
        cout<<function(i)<<" ";  
        cout<<endl;  
        if(function(i)>=100&&function(i)<=999)  
            count++;  
    }  
     cout<<"Fibonacci数列前20个数中的三位数个数为:"<<count<<endl;  
     cout<<"该数列第16项数据是:"<<function(16)<<endl;  
      
     return 0;      
}  
int function(int n)  
{  
   if(n==1||n==2)return 1;  
   else return function(n-1)+function(n-2);  
}  




1.4

#include<iostream>  
using namespace std;  
int main()  
{int english_1=0,english_2=0,kong=0,math=0,other=0;  
char a;  
cout<<"请输入一行字符:";          
while((a=getchar())!='\n')            
{if(a>='a'&&a<='z') english_1++;  
else if(a>='A'&&a<='Z') english_2++;  
else if(a==' ') kong++;  
else if(a>='0'&&a<='9') math++;         
else other++;}  
cout<<"小写英文字母的个数为:"<<english_1<<endl;  
cout<<"大写英文字母的个数为:"<<english_2<<endl;  
cout<<"空格的个数为:"<<kong<<endl;  
cout<<"数字的个数为:"<<math<<endl;  
cout<<"其他字符的个数为:"<<other<<endl;  
  
return 0;  
}  



1.5

#include<iostream>  
using namespace std;  
  
int main()  
{  
   char a[100];  
   int i;  
   cout<<"输入一字符串:"<<endl;  
   cin.get(a,100);  
   cout<<"反向输出每一个字符:"<<endl;  
   for(i=strlen(a);i>0;i--)  
       cout<<a[i-1];  
   cout<<"该字符串长度为:"<<strlen(a)<<endl;  
         
 return 0;  
  
}  



1.6

#include<iostream>    
using namespace std;    
    
int main()    
{    
    int i,b,shuzi;  
    shuzi=0;  
    b=0;    
    char a[100];    
    cout<<"输入一个字符串:"<<endl;    
    cin.get(a,100);    
    cout<<"删除了所有数字后的字符串为:"<<endl;    
    for(i=0;i<100;i++)    
        if(a[i]=='\0')    
            break;    
        else if(a[i]>='0'&&a[i]<='9') shuzi++;    
        else    
        cout<<a[i];    
        cout<<"该字符串的长度为:"<<strlen(a)-shuzi<<endl;    
            
    return 0;    
        
}    



3
#include<iostream>  
#include<iomanip>  
using namespace std;  
int main()  
{  
   int i,j,k,p;  
   p=0;  
   int a[4][5],b[5][3],ji[4][3];  
   cout<<"请输入4x5矩阵的元素:";  
   for(i=0;i<4;i++)  
   for(j=0;j<5;j++)  
   cin>>a[i][j];  
    
   cout<<"请输入5x3矩阵的元素:";  
   for(i=0;i<5;i++)  
   for(j=0;j<3;j++)  
       cin>>b[i][j];  
   for(i=0;i<4;i++)  
   {  
      for(j=0;j<3;j++)  
      for(k=0;k<5;k++)  
      {  
       p+=a[i][k]*b[k][j];  
       ji[i][j]=p;  
      }  
      p=0;   
   }  
   cout<<"两个矩阵的乘积为:"<<endl;  
   for(i=0;i<4;i++)  
   {  
       for(j=0;j<3;j++)  
       cout<<setw(4)<<ji[i][j];  
       cout<<endl;  
   }  
   return 0;  
  
}  



4.不会做




评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值