第六周作业

习题1

#include<iostream>  
#include<iomanip>  
using namespace std;  
int main()  
{  
    int a[5];  
    int i,j,t;  
    cout<<"输入5个数值"<<endl;  
    for(i=0;i<5;i++)  
        cin>>a[i];  
    cout<<endl;  
    for(i=0;i<5;i++)  
    for(j=0;j<5-i;j++)  
        if(a[j]>a[j+1])  
        {t=a[j];a[j]=a[j+1];a[j+1]=t;}  
    cout<<"数值从大到小的排列是"<<endl;  
    for(i=4;i>=0;i--)  
        cout<<a[i]<<"    ";  
    cout<<endl;  
    return 0;  
} 

习题2

#include<iostream>  
#include<iomanip>  
using namespace std;  
int main()  
{  
    int a[2][3],i,j,max,x,y;  
    cout<<"请输入一个二维数组a[2][3]"<<endl;  
    for(i=0;i<2;i++)  
        for(j=0;j<3;j++)  
            cin>>a[i][j];  
        cout<<"输出一个二维数组a[2][3]"<<endl;  
  
         for(i=0;i<2;i++)  
    {  
        for(j=0;j<3;j++)  
            cout<<setw(4)<<a[i][j];  
        cout<<endl;  
    }  
    max=a[0][0];  
    for(i=0;i<2;i++)  
        for(j=0;j<3;j++)  
          
            if(a[i][j]>=max)  
            {  
                max=a[i][j];  
                x=i;  
                y=j;  
            }  
                cout<<"输出二维数组a[2][3]的最大值"<<endl;  
    cout<<"a["<<i<<"]["<<j<<"]="<<max<<endl;  
  
    return 0;  
}  

习题3

#include<iostream>  
#include<iomanip>  
using namespace std;  
int main()  
{  
    int i;  
    int j=0;  
    int f[20]={1,1};  
    for(i=2;i<20;i++)  
    {  
        f[i]=f[i-2]+f[i-1];  
        if(f[i]>100&&f[i]<999)  
            j+=1;  
    }  
    for(i=0;i<20;i++)  
    {  
        if(i%4==0)  
            cout<<endl;  
        cout<<setw(12)<<f[i];  
    }  
  
    cout<<endl<<"3位数有"<<j<<"个"<<endl;  
    cout<<"第16项是"<<f[15]<<endl;  
    return 0;  
}  

习题4

#include<iostream>  
#include<iomanip>  
using namespace std;  
int main()  
{  
    char str[100];  
    cout<<"输入一个字符串";  
    cin.getline(str,50);  
    int upc=0,lowc=0,num=0,space=0,other=0;  
    for(int i=0;i<str[i];i++)  
    {  
        if(str[i]>='A'&&str[i]<='Z')  
            upc++;  
        if(str[i]>='a'&&str[i]<='z')  
            lowc++;  
        if(str[i]>='0'&&str[i]<='9')  
            num++;  
        if(str[i]==' ')  
            space++;  
        else  
            other++;  
    }  
    cout<<"大写字符有"<<upc<<"个"<<endl;  
    cout<<"小写字符有"<<lowc<<"个"<<endl;  
    cout<<"数字字符有"<<num<<"个"<<endl;  
    cout<<"空格有"<<space<<"个"<<endl;  
    cout<<"其它字符有"<<other<<"个"<<endl;  
    return 0;  
}  

习题5

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

实验3

#include<iostream>  
#include<iomanip>  
using namespace std;  
int main()  
{  
    int a[4][5],b[5][3],c[4][3];  
    int i,j,k,sun=0;  
    cout<<"输入4行5列的二维数组的元素值"<<endl;  
    for(i=0;i<4;i++)  
    for(j=0;j<5;j++)  
    {  
        cout<<"a["<<i<<"]["<<j<<"]=";  
        cin>>a[i][j];  
    }  
    cout<<"输入5行3列的二维数组的元素值"<<endl;  
    for(j=0;j<5;j++)  
    for(k=0;k<3;k++)  
    {  
        cout<<"b["<<j<<"]["<<k<<"]=";  
        cin>>b[j][k];  
    }  
    for(i=0;i<4;i++)  
    for(j=0;j<5;j++)  
    for(k=0;k<3;k++)  
    {  
        c[i][k]=a[i][j]*b[j][k];  
    }  
    cout<<"两矩阵积,得到的矩阵c[4][3]为"<<endl;  
    for(i=0;i<4;i++)  
    {  
        cout<<endl;  
        for(k=0;k<3;k++)  
        cout<<setw(9)<<c[i][k];  
    }  
    cout<<endl;         
    return 0;  
}  

实验4

#include<iostream>   
#include<iomanip>  
using namespace std;   
int  main()    
{   
    int N;  
    int i,j,k,a[100][100];   
    cout<<"输入一个数:";  
    cin>>N;  
    for(i=0;i<N;i++)   
    for(j=0;j<N;j++)   
       a[i][j]=0;  //初始值为零  
    j=N/2;   
    a[0][j]=1;    // 确定1的位置  
    for(k=2;k<=N*N;k++)   
    {   
       i--;      // 向上移  
       j++;     //向右移  
       if(i<0)   
           i=N-1;     //  行出界回到n-1  
       else if(j>N-1)   
           j=0;       // 列出回到0  
       if(a[i][j]==0)                     
           a[i][j]=k;  // 按规律顺序确定数值位置,有0才赋值  
       else   
       {   
           i=(i+2)%N;   
           j=(j-1+N)%N;  //规律式子是网上找的,不理解啊  
           a[i][j]=k;   // 已有数字时数字的位置  
       }   
    }   
    cout<<endl;  
    for(i=0;i<N;i++)   
    {   
       cout<<"\t";   
       for(j=0;j<N;j++)   
           cout<<setw(4)<<a[i][j];        //  setw(4)保证4位输出  
       cout<<"\n\n";   
    }   
    return 0;   
}   


评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值