第五(六)周作业 p1

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

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

                                                                  一 课本例题

例一:

#include<iostream>  
using namespace std;  
  
int main()  
{  
    int a[10];  
    int i;   
    for(i=0;i<10;i++)     //给所有的数组元素赋初值  
        a[i]=i*2+2;  
    for(i=0;i<10;i++)    //输出所有的数组元素,每行显示5个数组元素  
    {   
        cout<<a[i]<<'\t';  
        if((i+1)%5==0)  
            cout<<endl;  
      
      
    }  
  
    return 0;  
  
}  

显示结果:


例二:

/*************************
**成绩筛选及统计*********
************************/
#include<iostream>  
using namespace std;  
  
int main()  
{  
    int i,math[40],n;                   //math[40]最多可输入40个成绩
    float aver=0.0;                    //平均分  
    int unpassedcout = 0;             // 不及格学生人数  
    int highscorecout =0;            // 90分以上学生人数  
    cout<<"请输入学生人数:"; 
	cout<<endl;
    cin>>n;  
    cout<<"请输入学生成绩:"; 
	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) unpassedcout++;  
        if(math[i]>90) highscorecout++;    
    }  
  
    cout<<"平均分为:"<<aver<<endl;  
    cout<<"90分以上人数为:"<<highscorecout<<endl;  
    cout<<"不及格人数为:"<<unpassedcout<<endl;  
  
    return 0;  
  
}  

输出结果:


例三:

/**********************************
*****扫描法——找最大的数组元素****
***********************************/
#include<iostream>  
#include<iomanip>  
using namespace std;  
  
int main()  
{  
    int a[10],i,big;  
    cout<<"please input 10 numbers:\n";  
    for(i=0;i<10;i++)  
        cin>>a[i];  
    cout<<"the numbers are:";  
    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<<"the big number is :"<<big<<endl;  
  
    return 0;  
}  

输出结果:



例四:

/**************************
***** 冒泡法*************
*************************/

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

int main()  
{  
    int a[10]; 
	int i,j,t;
    cout<<"please input 10 numbers:\n";  
    for(i=0;i<10;i++)  
        cin>>a[i];       //输入数组元素
    cout<<"the numbers are:";  
    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]>a[j+1])
			{
				t=a[j];
				a[j]=a[j+1];
				a[j+1]=t;
			}
			cout<<"the sorted numbers are:";
			for(i=0;i<10;i++)
				cout<<setw(4)<<a[i];     //输出数组元素
				cout<<endl;
			return 0;  
}  

输出结果:


 例五:

/************************************
*** 用一维数组处理Fibonacci数列问题**
*************************************/
#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];  //将前40个数存入数组
    for(i=0;i<40;i++)  
    {  
            if(i%4==0)  
            cout<<endl;  
            cout<<setw(12)<<f[i];  
    }  
    cout<<endl;  
    return 0;  
      
}  

输出结果:


例七:

 #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;  
} 
输出结果:


例八:

#include<iostream>  
using namespace std;  
  
int main()  
{  
    char str[50];  
    cout<<"Please input a string:";  
    cin.get(str,50);         //默认结束符是回车键
    cout<<"The string is:"<<str<<endl;	  
  
    return 0;  
}   

输出结果:


例九:

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


例十:

#include <iostream>  
using namespace std;    
    
int main()    
{    
    char s[]="This is C programming test."; 
	cout<<"This is C programming test 这个句子中";
    int i=0,pLen=0,maxpLen = 0, pSeat = 0;    
    while(s[i]!='\0')    
    {    
        while(s[i]!=' '&&s[i]!='\0')    //区分单词并计算长度
        {    
            pLen++;    
            i++;    
        }    
        if(pLen>maxpLen)       //记录最长的单词的位置和长度
        {    
            pSeat=i-pLen;    
            maxpLen=pLen;    
        }    
        while(s[i]==' ')    
            i++;    
        pLen=0;               //为计算下一个单词长度赋值
    }    
    cout <<"最长的单词 :";    
    for(i=0;i<maxpLen;i++)    
        cout << s[pSeat+i];    
    cout <<endl;      
    
    return 0;    
}   

输出结果:


例十二:

#include<iostream>  
#include<cstring>  
using namespace std;  
  
int main()  
{  
    char str[10];  
    cout<<"请输入字符串,直到输入 hello 后程序结束:"<<endl;  
    do{  
        cin>>str;  
      
    }while(strcmp(str,"hello")!=0);  
  
        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<iomanip>
using namespace std;
int main()
{
	int a[5],i,j,temp;
	cout<<"请输入五个数:"<<endl;
	for(i=0;i<5;i++)
		cin>>a[i];
	cout<<"输入的五个数为:";
	for(i=0;i<5;i++)
		cout<<setw(4)<<a[i];
	cout<<endl;
	for(i=0;i<4;i++)           //i为轮次变量,共四轮
		for(j=0;j<4-i;j++)             //j为每轮比较次数变量,共4-i次
			if(a[j]<a[j+1])

			{
				temp=a[j];
				a[j]=a[j+1];
				a[j+1]=temp;                         //冒泡法排序
			}
			cout<<"按照大到小的排序为:";
			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 a[2][3],i,j;
	cout<<"请输入6个数组元素:"<<endl;
	for(i=0;i<2;i++)
		for(j=0;j<3;j++)
		{
			cin>>a[i][j];
		}
		cout<<"输入的数组为:"<<endl;
		for(i=0;i<2;i++)
		{
			for(j=0;j<3;j++)
				cout<<setw(5)<<a[i][j];
			cout<<endl;
		}
		int row=0,col=0,max=a[0][0];            //找出该数组的最大元素以及其下标
		for(i=0;i<2;i++)
			for(j=0;j<3;j++)
				if(max<a[i][j])
				{ 
					max=a[i][j];row=i;col=j;
				}
				cout<<"最大的数组为:"
					<<"a["<<row<<"]["<<col<<"]="
					<<a[row][col]<<endl;
				

			return 0;
}

输出结果:


习题三:

#include<iostream>
#include<iomanip>
using namespace std;
int main()
{
	int i,sixteenth,count=0,f[20]={1,1};    //将Fibonacci数列的前20个数存入数组f中
	for(i=2;i<20;i++)
	{
		f[i]=f[i-2]+f[i-1];
          if(f[i]>=100&&f[i]<=999)     //统计三位数的个数
			  count++;
	}
		sixteenth=f[15];    //第十六项数据的下标标为15
		for(i=0;i<20;i++)
		{
			if(i>0&&i%4==0)
				cout<<endl;
			cout<<setw(8)<<f[i];
		}
		cout<<endl<<endl
			<<"Fibonacci数列的前20个数中三位数的个数为:"<<count<<endl
			<<"Fibonacci数列的第十六项数据为:"<<sixteenth<<endl;


			return 0;
}

输出结果:


习题四:

#include<iostream>
#include<iomanip>
using namespace std;
int main()
{
	char string[50];
	cout<<"请输入一个字符串:";
		cin.getline(string,50);
	int uppercase=0,lowercase=0,space=0,digit=0,others=0;
	for(int i=0;string[i]!='\0';i++)
		if(string[i]>='A'&&string[i]<='Z') uppercase++;
		else if(string[i]>='a'&&string[i]<'z') lowercase++;
		else if(string[i]==' ') space++;
		else if(string[i]>='0'&&string[i]<='9') digit++;
		else others++;
		cout<<"大写字符有:"<<uppercase<<"个"<<endl;
		cout<<"小写字符有:"<<lowercase<<"个"<<endl;
		cout<<"数字字符有:"<<digit<<"个"<<endl;
		cout<<"空格有"<<space<<"个"<<endl;
		cout<<"其他字符有:"<<others<<"个"<<endl;

			return 0;
}

输出结果:


习题五:

#include<iostream>
using namespace std;
int main()
{
	char string[100];
	int len=0;
	cout<<"请输入一个字符串:"<<"(例如“hello world”)"<<endl;
	cin.getline(string,100);        //依次将所输入的字符赋给各数组元素
	while(string[len])
		len++;
	cout<<"这个字符串的长度为:"<<len<<endl;
	cout<<"这个字符串反向输出为:";
	for(int i=len-1;i>=0;i--)
	{
		cout<<string[i];
	}
	cout<<endl;
	
	return 0;
}

输出结果:


习题六:

#include<iostream>
#include<iomanip>
using namespace std;
int main()
{
	char string[30];
	cout<<"请输入一个字符串:"<<endl;
	cin.getline(string,30);
	int count=0;
	for(int i=0;string[i];i++)
		if(string[i]>='0'&&string[i]<='9') count++;
		cout<<"该字符串中所有的十进制数字字符的个数有"<<count<<"个"<<endl;
			
	return 0;
}

输出结果:


习题七:

#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;
}

输出结果:




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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值