代码小练习

//---------------------------------A 马鞍点---------------------------------------// 
 /*
#include <iostream>
using namespace std;
int main(){
	int arr[100][100];
	int m,n,i,j,k,num=0;		//m 为行   n 为列   max为最大值 
	int colmax=0; 
	int max; 
	cin>>m;
	cin>>n;
	for(i=0;i<m;i++){		//输入数组 
		for(int j=0;j<n;j++){
			cin>>arr[i][j];
		}
	}
	
	//寻找行最大值
	//初始化k 重新设置i=0  重新定义j  取max=0; 
	for(i=0;i<m;i++){		//寻找每行最大值 
	int max=0;
		//max=arr[i][0];		//max == 每行的第一个值 
		for(j=0;j<n;j++){		//行不变,列增大 
			if(max<arr[i][j]){	//max < 矩阵元素时 
				max=arr[i][j];
				colmax=j;		//得到每一行的最大元素的 列   赋值给全局变量  
			}
		};
//		max=arr[i][colmax];
	for(j=colmax;j<n;j++){		//从colmax开始,依次扫描colmax之后的所有列,因为有可能有相等的行最大元素,而第一个最大元素不符合要求 
		if(arr[i][j]==max){		//选中其他行最大元素 
			for(k=0;k<m;k++){	//开始遍历当前列 
				if(max>arr[k][j])	//if 行最大值比当前列的元素大,则不符合题意 
				break;				//跳出当前循环 ,继续比较其他行最大元素 
		};
		if(k==m){					//全局变量 k == m 时,代表循环完毕也没有比max更大的元素,所以,当前max就是马鞍点 
			num++;
		cout<<(i+1)<<" "<<(j+1)<<" "<<max<<endl;
		}
		}
	}	
	} 
	if(num==0) cout<<"No"<<endl;
}
*/
/* 
#include<iostream>
using namespace std;

int main(){
	int arr[100][100];
	int i,j,m,n,k,colmax,num=0;		//mn分别为行列  i j 是对行列的循环  max存储最大值 num 鞍点个数  colmax存储行最大值的列 
	cin>>m>>n;
	//循环输入矩阵
	for(i=0;i<m;i++){
		for(j=0;j<n;j++){
			cin>>arr[i][j];
		}
	} 
	for(i=0;i<m;i++){		//遍历每一行每一列寻找最大值 
	int max=0;				//max的值必须要在第一层循环内,每遍历一行就要重新赋值==0; 
		for(j=0;j<n;j++){
			if(max<arr[i][j]){
				max=arr[i][j];
				colmax=j; 
			} 	
		}					//遍历完一行,结束
		for(j=colmax;j<n;j++){
			if(max==arr[i][j]){
				for(k=0;k<m;k++){
					if(max>arr[k][j]) break;	//如果当前列有比max大,则不是马鞍点,跳出 
				}
				if(k==m){						//如果k从0行到m-1行都没有找到当前列比max大的数,则是马鞍点 
					num++;						//马鞍点数+1 
					cout<<i+1<<" "<<j+1<<" "<<max<<endl;
				} 
			}
		} 
	} 
	if(num==0) cout<<"No"<<endl;				//如果对所有行列循环完后没有马鞍点,则输出num==0; 
	return 0;
}
*/ 

//---------------------------------------B 给定一个日期,输出这个日期是该年的第几天----------------------------------
/*
#include<iostream>
#include<cstdio>
using namespace std;
int main(){
	int year,month,day;
	int arr1[12]={31,28,31,30,31,30,31,31,30,31,31,31};
	while(~scanf("%d/%d/%d",&year,&month,&day)){
		if((year%4==0&&year%100!=0)||year%400==0)	//四年一润,百年不润,四百年润  year是闰年 
		{
			arr1[1]=29;
		}
		else{
			arr1[1]=28;
		}
		int days=0;
		for(int i=0;i<month-1;i++){
			days+=arr1[i];
		}
		days+=day;
			printf("%d\n",days);		
	}
	return 0;	
}
*/

//-----------------------------------C 成绩转换等级-----------------------------------------------
/*
//#include<typeinfo>
#include<iostream>
#include<stdio.h>

using namespace std;
int main(){
	int  t=0;
		while(cin>>t){
//			cout<<t<<endl;
//			cout<<typeid(t).name()<<endl;
			if(t<0||t>100)
				cout<<"Score is error!"<<endl;
			else{
			if(90<=t&&t<=100){		//mm<=t<=nn 错误写法 t<=nn && t>=mm 
				cout<<"A"<<endl;
			}else if(80<=t){		//不用写 mm<= t<=nn  <=nn已在else中体现 
				cout<<"B"<<endl;
			}else if(70<=t){
				cout<<"C"<<endl;
			}else if(60<=t){
				cout<<"D"<<endl;
			}else
				cout<<"E"<<endl;
			}
			}
		return 0;
} 
*/


//---------------------------------------- D 平方和立方和------------------------------------------
/*
#include<iostream>
using namespace std;
int main(){
#if 0	
	int m,n;
	while(cin>>m&&cin>>n){
		if(m>n){
			int temp=0;
			temp=m;
			m=n;
			n=temp;
		}
		int ji=0,ou=0;
		for(int i=0;i<(n-m);i++){ //1-4   1 2 3  4 四个数   循环三次 0 1 2 (b-a)=3 
			if((m+i)%2==0){
				ou+=(m+i)*(m+i); 
			}else{
				ji+=(m+i)*(m+i)*(m+i);
			}
		}
		if(n%2==0){
			ou+=n*n;
		}else{
			ji+=n*n*n;
		}
		cout<<ou<<" "<<ji<<endl;
	}
	
#else	
	int m,n;
	while(cin>>m&&cin>>n){
		if(m>n){
			int temp=0;
			temp=m;
			m=n;
			n=temp;
		}
		int ji=0,ou=0;
		for(int i=m;i<=n;i++){
			if(i%2==0){
				ou+=i*i;
			}else{
				ji+=i*i*i;
			}
			
		}
		cout<<ou<<" "<<ji<<endl;
//		return 0;	循环输入不能加return 0; 否则return之后就终止main函数执行 
		}
		#endif
}
*/
//----------------------------------------- E 数值统计-------------------------------------- 
/*
#include<iostream>
using namespace std;
int main(){
	int fu=0, ling=0,zheng=0;
	int n;
	while(cin>>n&&n!=0){
		float num;
		for(int i=0;i<n;i++){
			cin>>num;
			if(num<0){
				fu++;
			}else if(num==0){
				ling++;
			}else{
				zheng++;
			}
		}
		cout<<fu<<" "<<ling<<" "<<zheng<<endl;
		fu=0, ling=0,zheng=0;
	}
}
*/

//------------------------------------- F青年歌手大赛------------------------------- 
/*
#include <iostream>
#include<iomanip>
using namespace std;
int main(){
	int n;
	float sum=0.0,avg=0.0;
	while(cin>>n){
		int score[100];
		for(int i=0;i<n;i++){
			cin>>score[i];
		}
		int max=score[0],min=score[0],indexMax=0,indexMin=0;
		for(int i=0;i<n;i++){
			if(max<score[i]){
				max=score[i];
				indexMax=i;
			}else if(min>score[i]){
				min=score[i];
				indexMin=i;
			}
		}
		score[indexMax]=score[indexMin]=0;
		for(int i=0;i<n;i++){
			sum+=score[i];
		}
		avg=sum/(n-2);
		//cout<<avg<<endl;
		
		//第一种写法 
		//cout.setf(ios::fixed);
		//cout.precision(2);
		
		//第二种写法
		//cout<<setiosflags(ios::fixed)<<setprecision(2);
		
		//第三种写法
		cout<<fixed<<setprecision(2); 
		
		cout<<avg<<endl;
		sum=0;
	} 
} 

*/
//---------------------------------------------G数列有序-----------------------------
/* 
#include<iostream>
using namespace std;
int main(){
	int n,m,i,j;
	int arr[101];
	while(cin>>n&&cin>>m&&!(m==0&&n==0)){
		if(n==0){
			cout<<m<<endl;
		}else{	
		for(i=0;i<n;i++){
			cin>>arr[i];
		}
		for(i=0;i<n;i++){
			if(m<arr[i]){
				for(j=n;j>i;j--){
					arr[j]=arr[j-1];
				}
				arr[i]=m;    
				break;
			}
		}
		if(m>arr[n-1]) arr[n]=m;
		for(i=0;i<n+1;i++){
			cout<<arr[i];
			if(i==n){
				cout<<endl;
			}else{
				cout<<" ";
			}	
		}
	}
	} 
}
 */
 
 //----------------------------------------- H 统计元音-------------------------
 /*
 #include<iostream>
#include<cstring>
 using namespace std;
 
 int main(){
 	int n;
 	int num_a,num_e,num_i,num_o,num_u;
	 cin>>n;
	 getchar();
	 while(n--){
//	 	char s[100];
		char s[101];
	 	num_a=num_e=num_i=num_o=num_u=0;
	 	gets(s);
		 int len=strlen(s);
//		int len=sizeof(s);   //101  s是初始设定的,这里不能用 
		 for(int i=0;i<len;i++){
		 	switch(s[i]){
		 		case 'a':num_a++;break;
		 		case 'e':num_e++;break;
		 		case 'i':num_i++;break;
		 		case 'o':num_o++;break;
		 		case 'u':num_u++;break;
			 }
		 } 
		 cout<<"a:"<<num_a<<endl;
		 cout<<"e:"<<num_e<<endl;
		 cout<<"i:"<<num_i<<endl;
		 cout<<"o:"<<num_o<<endl;
		 cout<<"u:"<<num_u<<endl;
		 if(n>0) cout<<endl;
	 }	
 } 
 
 */
  
//----------------------------------------- I 回文字 ---------------------------------------- 
/*
#include<iostream> 
#include<cstring>
using namespace std;
int main(){
	int n;
	cin>>n;
	getchar();
	while(n--){		//3--  2-- 1--
		string s;		//char[n] 输入长度 n-1  否则报错  不设数组长度,则默认只选第一个 
		cin>>s; 
//		int len=strlen(s);
		int len=s.length();
		int flag=0;
		for(int i=0;i<len/2;i++){
			if(s[i]!=s[len-i-1]) 		//abba  abccba abcba
				flag=1;
		}
		if(flag==0){
			cout<<"yes"<<endl;
		}else{
			cout<<"no"<<endl;
		}
	}
}
*/
//----------------------------------水仙花数----------------------------------
/* 
#include<iostream>
using namespace std;
int main(){
	int n,m;
	int bai=0,shi=0,ge=0;
	while(cin>>m&&cin>>n){
		int flag=0;
		for(int i=m;i<=n;i++){
			ge=i%10;
			shi=(i%100)/10;
			bai=i/100;
			if(ge*ge*ge+shi*shi*shi+bai*bai*bai==i){
				if(flag==0){
					cout<<i;
					flag=1;
				}else{
					cout<<" "<<i;
				}
			}
		}
		if(flag==0){
			cout<<"no"<<endl;
		}else{
			cout<<endl; 
		}
	} 
} 
*/

//--------------------------------查找最大元素-----------------------
/*
#include<iostream>

using namespace std;
int main(){
	
} 
*/

//-----------------------------首字母变大写----------------------------
/*
#include<iostream>
#include<cstring>
//#include<cstdio>

using namespace std;

int main(){
    char s[105];
    while(gets(s)!=NULL){
       int len=strlen(s);
        for(int i=0;i<len;i++){
            if(i==0){
                s[i]=toupper(s[i]);
            }else if(islower(s[i])&&s[i-1]==' '||s[i-1]=='\t'){
                s[i]=toupper(s[i]);
            }
        }
        puts(s);
//        cout<<endl;
    }
    return 0;
} 

*/
//--------------------------------------进制转换--------------------------
/* 
#include<iostream>
#include<stack>
using namespace std;
int main(){
    int n,m;
    stack <char> s;
    while(cin>>n>>m){
        int temp;   //记录求余的余数
        if((n<0&&m>0)||(n>0&&m<0))
        cout<<"-";      //负值输出负号
        while(n){
            temp=n%m;
            temp=temp>0?temp:-temp;     //temp此时有可能为负数,需要转换为正数
            if(temp>=10){
                s.push(temp-10+'A');    //11=B。11-10=1 1+'A'=字符B  
            }else{
                s.push(temp+'0');       //3+'0' ==3.(字符类型) 
            }
            n=n/m;
        }
        while(!s.empty()){
            cout<<s.top();
            s.pop();
        }
        cout<<endl;     
    }
    return 0;
} 
*/
//-----------------------------A图形输出--------------------------
/*
#include<iostream>

using namespace std;
int main(){
	int n;
	cin>>n;
	for(int i=1;i<=n;i++){
		for(int j=1;j<=2*i-1;j++){
			cout<<"*";
		}
		cout<<endl;
	}
	return 0;
}
*/
//-------------------------B字符串统计-------------------------------
/* 
#include<iostream>
#include<cstring>

using namespace std;
int main(){
	int n;
	int m;
	cin>>n;
	getchar();
	m=n;
	while(n--){
		char s[100];
		cin>>s;
		int count=0;
		int len=strlen(s);
		for(int i=0;i<len;i++){
			if(s[i]>=48&&s[i]<=57)
			count++;
			}
		cout<<count<<endl;
	}
	return 0;
}

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值