第六周作业(改)

第四章作业一:课本习题

1.
//#include "stdafx.h"  
#include<iostream>  
using namespace std;  
#include<iomanip>  
int num[5];  
int main()  
{  
    int a,b,i;  
    cout<<"please input 5 numbers:"<<endl;  
    for(a=0;a<5;a++)  
    cin>>num[a];  
    cout<<"这五个数是:";  
    for(a=0;a<5;a++)  
        cout<<setw(5)<<num[a];  
    cout<<endl;  
    for(a=0;a<5;a++)  
        for(i=4;i>0;i--)  
    if(num[i]>num[i-1])  
    {   b=num[i];  
    num[i]=num[i-1];  
    num[i-1]=b;  
    }  
    cout<<"排序后:";  
    for(a=0;a<5;a++)  
        cout<<setw(4)<<num[a];  
    cout<<endl;  
    return 0;  
}  
2.

#include "stdafx.h"  
#include<iostream>  
using namespace std;  
//int num[10];  
int _tmain(int argc, _TCHAR* argv[])  
{  
    int num[10];  
    int a,b;  
    int min,n;  
    cout<<"请输入十个数"<<endl;  
    for(a=0;a<10;a++)  
        cin>>num[a];  
    for(a=0;a<9;a++)  
    {  
        min=a;  
    for(b=a+1;b<10;b++)  
        {if(num[b]<num[min])  
        min=b;}  
    if(min!=a)  
    {n=num[a];num[a]=num[min];num[min]=n;}  
    cout<<"第"<<a+1<<"次排序结果:"<<endl;  
    for(b=0;b<10;b++)  
        cout<<num[b]<<'\t';  
    cout<<endl;  
    };  
    cout<<"最后排列结果:"<<endl;  
    for(a=0;a<10;a++)  
        cout<<num[a]<<'\t';  
    cout<<endl;  
    return 0;  
}  
3.

#include "stdafx.h"  
#include<iostream>  
#include<iomanip>  
using namespace std;  
int num[10]={45,62,18,73,64,58,39,57,85,28};  
int _tmain(int argc, _TCHAR* argv[])  
{  
    int a,b;  
    int min,n;  
    //cout<<"请输入十个数"<<endl;  
    //for(a=0;a<10;a++)              //每次调试都要输数,真的很麻烦  
        //cin>>num[a];                //所以就在开头定义了  
    cout<<"初始数据:"<<endl;  
    for(a=0;a<10;a++)  
        cout<<setw(5)<<num[a];  
    cout<<endl;  
    for(a=1;a<10;a++)  
    {  
        min=num[a];  
    b=a-1;  
    while(b>=0&&num[b]>min)  
    {  
        num[b+1]=num[b];  
    b--;  
    }  
    num[b+1]=min;  
    cout<<"第"<<a<<"次排序结果:"<<endl;  
    for(b=0;b<10;b++)  
        cout<<setw(5)<<num[b];  
    cout<<endl;  
    };  
    cout<<"最后排列结果:"<<endl;  
    for(a=0;a<10;a++)  
        cout<<setw(5)<<num[a];  
    cout<<endl;  
    return 0;  
}  
4.
  
#include "stdafx.h"  
#include<iostream>  
#include<iomanip>  
using namespace std;  
int num[3][4];  
int main()  
{  
    int a,b;  
    int min,max;  
    cout<<"请输入12个数"<<endl;  
    for(a=0;a<3;a++)  
        for(b=0;b<4;b++)  
        cin>>num[a][b];     
    cout<<"初始数据:"<<endl;  
    for(a=0;a<3;a++)  
    {  
        for(b=0;b<4;b++)  
        cout<<"num["<<a<<"]["<<b<<"]="<<num[a][b]<<'\t';  
        cout<<endl;  
    }  
    cout<<endl;  
    max=num[0][0];  
    min=num[0][0];  
    for(a=0;a<3;a++)  
        for(b=0;b<4;b++)  
        {  
        if(max<num[a][b])  
            max=num[a][b];;  
        if(min>num[a][b])  
            min=num[a][b];  
        }  
        for(a=0;a<3;a++)  
        for(b=0;b<4;b++)  
        {  
        if(max==num[a][b])  
            cout<<"最大项max=num["<<a<<"]["  
            <<b<<"]="<<num[a][b]<<endl;;  
        if(min==num[a][b])  
            cout<<"最小项min=num["<<a<<"]["  
            <<b<<"]="<<num[a][b]<<endl;  
        }  
    return 0;  
} 

 5

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


6.

#include <iostream>      
#include <iomanip>      
using namespace std;      
      
int main()      
{      
    char a[50],b[50];      
    int i,j=0;      
    cout<<"请输入一个字符串:"<<endl;      
    cin.get(a,50);      
    for(i=0;i<strlen(a);i++)      
    {      
        if(a[i]>='0'&&a[i]<='9')      
            continue;      
        b[j]=a[i];      
        j++;      
    }      
    b[j]='\0';      
    cout<<"删除数字后的字符串为:"<<b<<endl;      
    cout<<"字符串的长度为:"<<j<<endl;      
      
    return 0;      
      
}    
习题3

#include<iostream>    
#include<iomanip>    
using namespace std;    
int main()    
{    
   int i,j,k,p=0;    
   int a[4][5],b[5][3],x[4][3];    
   cout<<"请输入4x5矩阵的元素:";  //第一个数组  
   for(i=0;i<4;i++)    
   for(j=0;j<5;j++)    
   cin>>a[i][j];  
   for(i=0;i<4;i++)    
   {  
       for(j=0;j<5;j++)  
           cout<<setw(6)<<a[i][j];  
       cout<<endl;  
   }  
   cout<<"请输入5x3矩阵的元素:"; // 第二个数组  
   for(i=0;i<5;i++)    
   for(j=0;j<3;j++)    
       cin>>b[i][j];   
   for(i=0;i<5;i++)    
   {  
       for(j=0;j<3;j++)  
           cout<<setw(6)<<b[i][j];  
       cout<<endl;  
   }  
   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];    
       x[i][j]=p;    
      }    
      p=0;     
   }    
   cout<<"两个矩阵的乘积为:"<<endl;    
   for(i=0;i<4;i++)    
   {    
       for(j=0;j<3;j++)    
       cout<<setw(4)<<x[i][j];    
       cout<<endl;    
   }    
   return 0;    
    
}    

习题4:

//  
  
#include "stdafx.h"  
#include<iostream>  
#include<iomanip>  
using namespace std;  
  
//float A[4][5]={32,65,-23,56,14,15,9,25,41,35,67,42,65,52,35,71,19,29,34,38,};  
//float B[5][3]={41,52,63,74,15,24,31,-41,65,-18,27,23,69,48,56,};  
//float C[4][3];  
int main()  
{  
    int a,b,c,d=0,e,f,g,i,k,m,n;  
    float A[20][20],B[20][20],C[20][20];    //由于定义数组时系统会开辟出一块空间,  
                                        //在写程序时应考虑实际情况,够用就好,杜绝浪费  
    do  
    {cout<<"请确定第一个矩阵的行数i(i<=20)"<<endl;  
    cin>>i;}  
    while(i>20);  
    do  
    {  
    cout<<"请确定第一个矩阵的列数k(k<=20)"<<endl;  
    cin>>k;}  
    while(k>20);  
    do  
    {cout<<"请确定第二个矩阵的行数m(应与第一矩阵列数相等)"<<endl;  
    cin>>m;}  
    while(m!=k);  
    do  
    {cout<<"请确定第二个矩阵的列数n(n<=20)"<<endl;  
    cin>>n;}  
    while(n>20);  
    cout<<"输入第一个矩阵的元素"<<endl;  
    for(a=0;a<i;a++)  
        for(b=0;b<k;b++)  
            cin>>A[a][b];  
    cout<<"输入第二个矩阵的元素"<<endl;  
    for(a=0;a<m;a++)  
        for(b=0;b<n;b++)  
            cin>>B[a][b];  
for(a=0;a<i;a++) //第一个矩阵的行数为新矩阵行数  
{  
    g=0;  
    for(b=0;b<n;b++) //第二个矩阵的列数为新矩阵列数  
    {  
        c=k;    //这是由第一矩阵列数决定的  
        e=0;  
        f=0;  
        while(c)  
        {  
            C[a][b]+=A[d][e]*B[f][g];  
            e++;  
            f++;  
            c--;  
        }  
        g++;  
    }  
        d++;  
    }  
cout<<"A="<<endl;  
    for(a=0;a<i;a++)  
    {  
        for(b=0;b<k;b++)  
            cout<<setw(8)<<setprecision(5)<<A[a][b];  
        cout<<endl;  
    }  
cout<<"B="<<endl;  
for(e=0;e<m;e++)  
    {  
        for(f=0;f<n;f++)  
            cout<<setw(8)<<setprecision(5)<<B[e][f];  
        cout<<endl;  
    }  
cout<<"C=AxB="<<endl;  
for(a=0;a<i;a++)  
    {  
        for(b=0;b<n;b++)  
            cout<<setw(8)<<setprecision(5)<<C[a][b];  
        cout<<endl;  
    }  
  
    return 0;  
}  





  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 2
    评论
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值