第六周c++作业

 实验作业

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

基本上,每个例题都有小改动。

1.1

#include <iostream>  
using namespace std;  
  
int main()  
{  
    int a[10],b[10];  
    int i,j;  
    for(i=0;i<10;i++)  
        a[i]=i*2+2;  
    for(j=0;j<10;j++)  
        b[j]=j+1;  
    for(i=0;i<10;i++)  
    {  
        cout<<a[i]<<'\t';  
        if((i+1)%5==0)  
            cout<<endl;  
    }  
    cout<<endl;  
    for(j=0;j<10;j++)  
    {  
        cout<<b[j]<<'\t';  
        if((j+1)%5==0)  
            cout<<endl;  
    }  
  
    return 0;  
}
程序运行结果


1.2

#include <iostream>  
using namespace std;  
  
int main()  
{  
    int i,math[40],n;  
    float aver=0.0;  
    int unpassedcount=0;  
    int passedcount=0;  
    int highscorecount=0;  
    cout<<"请输入学生人数:";  
    cin>>n;  
    cout<<"请输入成绩:"<<endl;  
    for(i=0;i<n;i++)  
    {  
        cin>>math[i];  
        aver+=math[i];  
    }  
    aver/=n;  
    for(i=0;i<n;i++)  
    {  
        if(math[i]<60)  
            unpassedcount++;  
        else  
            passedcount++;  
        if(math[i]>=90) highscorecount++;  
    }  
    cout<<"平均分为:"<<aver<<endl;  
    cout<<"90分以上的人数为:"<<highscorecount<<endl;  
    cout<<"及格人数为:"<<passedcount<<endl;  
    cout<<"不及格人数为:"<<unpassedcount<<endl;  
  
    return 0;  
} 
程序运行结果


1.3

#include <iostream>  
#include <iomanip>  
using namespace std;  
  
int main()  
{  
    int a[10],i,big,small;  
    cout<<"请输入10个数:\n";  
    for(i=0;i<10;i++)  
        cin>>a[i];  
    cout<<"这些数是:";  
    for(i=0;i<10;i++)  
        cout<<setw(4)<<a[i];  
    cout<<endl;  
    big=a[0];  
    for(i=1;i<10;i++)  
        if(a[i]>big)  
            big=a[i];  
    cout<<"最大的数为:"<<big<<endl;
	small=a[0];
	for(i=1;i<10;i++)
		if(a[i]<small)
			small=a[i];
	cout<<"最小的数为:"<<small<<endl;
  
    return 0;  
}
程序运行结果


1.4

#include <iostream>  
#include <iomanip>  
using namespace std;  
  
int main()  
{  
    int a[10];  
    int i,j,t;  
    cout<<"请输入10个数字:\n";  
    for(i=0;i<10;i++)  
        cin>>a[i];  
    cout<<"这些数字为:";  
    for(i=0;i<10;i++)  
        cout<<setw(4)<<a[i];  
    cout<<endl;  
    for(i=0;i<9;i++)  
        for(j=0;j<9-i;j++)  
            if(a[j+1]>a[j])  
            {  
                t=a[j+1];  
                a[j+1]=a[j];  
                a[j]=t;  
            }  
    cout<<"从大到小为:";  
    for(i=0;i<10;i++)  
        cout<<setw(4)<<a[i];  
    cout<<endl;  
  
    return 0;  
} 
程序运行结果


1.5

#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];  
    for(i=0;i<40;i++)  
    {  
        if(i%4==0)  
            cout<<endl;  
        cout<<setw(12)<<f[i];  
    }  
    cout<<endl;  
  
    return 0;  
} 
程序运行结果


1.6

#include <iostream>  
#include <iomanip>  
using namespace std;  
  
int main()  
{  
    int i,j;  
    int a[20][5];  
    for(i=0;i<20;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<20;i++)  
    {  
        for(j=0;j<5;j++)  
            cout<<setw(4)<<a[i][j];  
        cout<<endl;  
    }  
  
    return 0;  
}
程序运行结果


1.7

#include <iostream>  
#include <iomanip>  
using namespace std;  
  
int main()  
{  
    int a[4][4],i,j;  
    cout<<"请输入2行3列二维数组的元素值:"<<endl;  
    for(i=0;i<4;i++)  
        for(j=0;j<4;j++)  
        {  
            cout<<"a["<<i<<"]["<<j<<"]=";  
            cin>>a[i][j];  
        }  
    cout<<"\n该二维数组为:"<<endl;  
    for(i=0;i<4;i++)  
    {  
        for(j=0;j<4;j++)  
            cout<<setw(6)<<a[i][j];  
        cout<<endl;  
    }  
    int row=0,column=0,max=a[0][0];  
    for(i=0;i<4;i++)  
        for(j=0;j<4;j++)  
            if(max<a[i][j])  
            {  
                max=a[i][j];  
                row=i;  
                column=j;  
            }  
    cout<<"\n该数组中最大的元素值为:"<<"a["<<row<<"]["<<column<<"]="<<a[row][column]<<endl;  
    int row1=0,column1=0,min=a[0][0];  
    for(i=0;i<4;i++)  
        for(j=0;j<4;j++)  
            if(min>a[i][j])  
            {  
                min=a[i][j];  
                row1=i;  
                column1=j;  
            }  
    cout<<"\n该数组中最小的元素值为:"<<"a["<<row1<<"]["<<column1<<"]="<<a[row1][column1]<<endl;  
  
  
    return 0;  
}
程序运行结果


1.8

#include <iostream>  
using namespace std;  
  
int main()  
{  
    char str[50];  
    cout<<"Please input strings:";  
    cin.get(str,50);  
    cout<<"The string is:";  
    cout<<str<<endl;  
  
    return 0;  
}
程序运行结果


1.9

#include <iostream>  
#include <cstring>  
using namespace std;  
  
int main()  
{  
    char str[100];  
    cout<<"请输入一个字符串:";  
    cin.get(str,100);
	for(int j=0;j<100;j++)
		if(str[j]==0)
			cout<<"一共有"<<j<<"个字符!"<<endl;
    cout<<"字符串"<<str<<"的反向字符串为:";  
    for(int i=strlen(str)-1;i>=0;i--)  
        cout<<str[i];
	cout<<endl;
	
  
    return 0;  
}  
程序运行结果


1.10

#include <iostream>    
using namespace std;  
  
int main()  
{  
    char s[]="This is Cprogramming test.";
	int i=0,plen=0,maxlen=0,pseat=0;
	while(s[i]!='\0')
	{
		while(s[i]!=' '&&s[i]!='\0')
		{
			plen++;
			i++;
		}
		if(plen>maxlen)
		{
			pseat=i-plen;
		    maxlen=plen;
		}
		while(s[i]==' ')
			i++;
		plen=0;
	}
	cout<<"最长的单词为:";
	for(i=0;i<maxlen;i++)
		cout<<s[pseat+i];
	cout<<endl;

	
  
    return 0;  
}  
1.11

#include <iostream> 
#include <cstring>   
using namespace std;  
  
int main()  
{  
    char str[50];
	cout<<"请输入一组字符串";
	cin.get(str,50);
	cout<<"该字符串"<<str<<"的长度为:"<<strlen(str)<<endl;
	
  
    return 0;  
}  
程序运行结果


1.12

#include <iostream> 
#include <cstring>   
using namespace std;  
  
int main()  
{  
    char str[10];
	cout<<"请输入字符串,直到输入hellow后程序结束";
	do
	{
		cin>>str;
	}while(strcmp(str,"hellow")!=0);
	
    return 0;  
}  
程序运行结果


1.13

#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;
}
程序运行结果


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

2.1

#include <iostream>
#include <iomanip>
using namespace std;

int main()
{
	int number[5],i,j,S;
	cout<<"请输入5个数"<<endl;
	for(i=0;i<5;i++)
		cin>>number[i];
	for(i=0;i<4;i++)
		for(j=0;j<4-i;j++)
			if(number[j]<number[j+1])
			{
				S=number[j];
				number[j]=number[j+1];
				number[j+1]=S;
			}
	cout<<"从大到小的排列为:";
	for(i=0;i<5;i++)
		cout<<setw(4)<<number[i];
	cout<<endl;
	return 0;

}
程序运行结果


2.2

#include <iostream>
#include <iomanip>
using namespace std;

int main()
{
	int number[2][3],i,j;
	cout<<"请输入6个数组元素:"<<endl;
	for(i=0;i<2;i++)
		for(j=0;j<3;j++)
		    cin>>number[i][j];
	int a=0,b=0,max=number[0][0];
	for(i=0;i<2;i++)
		for(j=0;j<3;j++)
			if(max<number[i][j])
			{
				max=number[i][j];
				a=i;
				b=j;
			}
	cout<<"最大的数组元素为:"
		<<"number["<<a<<"]["<<b<<"]="
		<<number[a][b]<<endl;

	return 0;

}
程序运行结果


2.3

#include <iostream>
#include <iomanip>
using namespace std;

int main()
{
	int i,sixteenth,count=0,fib[20]={1,1};
	for(i=2;i<20;i++)
	{
		fib[i]=fib[i-2]+fib[i-1];
		if(fib[i]>=100&&fib[i]<=999)
			count++;
	}
	sixteenth=fib[15];
	for(i=0;i<20;i++)
	{
		if(i>0&&i%4==0)
			cout<<endl;
		cout<<setw(8)<<fib[i];
	}
	cout<<endl<<endl
		<<"数列前20个数中3位数的个数为:"<<count<<endl
		<<"数列中第16项数据为:"<<sixteenth<<endl;

	return 0;

}
程序运行结果


2.4

#include <iostream>
#include <iomanip>
using namespace std;

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


	return 0;

}
程序运行结果


2.5

#include <iostream>
using namespace std;

int main()
{
	char a[100];
	int j=0;
	cout<<"请输入一个字符串:"<<endl;
	cin.getline(a,100);
	while(a[j])
		j++;
	cout<<"这个字符串的长度为:"<<j<<endl;
	cout<<"这个字符串反向输出为:";
	for(int i=j-1;i>=0;i--)
		cout<<a[i];
	cout<<endl;


	return 0;

}
程序运行结果


2.6

#include <iostream>
#include <iomanip>
using namespace std;

int main()
{
	char a[30];
	cout<<"请输入一个字符串:"<<endl;
	cin.getline(a,30);
	int j=0;
	for(int i=0;a[i]!='\0';i++)
		if(a[i]>='0'&&a[i]<='9')
			j++;
	cout<<"该字符串中所有十进制数字字符的个数有"<<j<<"个"<<endl;

	return 0;

}
程序运行结果


2.7

#include <iostream>
#include <iomanip>
using namespace std;

int main()
{
	char a[50],b[50];
	int i,j=0;
	cout<<"请输入一个字符串:"<<endl;
	cin.getline(a,50);
	for(i=0;a[i];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. 编程定义一个4X5矩阵和5X3矩阵,并计算它们的积。

#include<iostream>  
using namespace std;
  
int main()  
{  
    int a[4][5],b[5][3],c[4][3]={0},i,j,k,l;
	cout<<"计算矩阵a[4][5]与矩阵b[5][3]的积"<<endl;
    cout<<"请输入矩阵a[4][5]的元素"<<endl;  
    for(i=0;i<4;i++)   
        for(j=0;j<5;j++)   
            cin>>a[i][j];  
    cout<<"请输入矩阵b[5][3]的元素"<<endl;  
    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++)  
            {  
                l=a[i][k]*b[k][j];  
                c[i][j]=c[i][j]+l;  
            }  
              
        }  
    cout<<"由c[4][3]=a[4][5]*b[5][3]"<<endl;
	cout<<"矩阵c[4][3]为:"<<endl;
     for(i=0;i<4;i++)  
    {  
        for(j=0;j<3;j++) 
            cout<<c[i][j]<<'\t';    
		cout<<endl;
    }
	 
    return 0;  
}
程序运行结果


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

这个有点难度。。。。。


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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值