浙江理工大学 我的编程之路 零基础学C/C++ ACM入队 200 题

44 篇文章 4 订阅

1001 - 1100 题过于简单,请自行探索。
绝大多数代码都可以AC,编写过程中可能有纰漏。
题号会有缺失或颠倒,但OJ上确实如此。

OJ地址:http://47.96.116.66/index.php
注意账号需要向教练申请

本文代码可以随意使用,无需我授权。

列表内的题目已经全部更新完毕(2021.10.11)

1101 问题 L: 零基础学C/C++101——最大数与数列最后一个数交换

#include<iostream>
using namespace std;
int main(){
	int n;
	while(cin>>n){
		int a[110]={},max0=-1,post0=-1;
		for(int i=1;i<=n;i++){
			cin>>a[i];
			if(max0<a[i]){
				max0=a[i];
				post0=i;
			}
		}
		swap(a[n],a[post0]);
		for(int i=1;i<=n;i++)
			cout<<a[i]<<" ";
		cout<<endl;
	}
	return 0;
}

1106 问题 M: 零基础学C/C++106——进制转换

#include<bits/stdc++.h>
using namespace std;
int flag;
string intToA(int n,int radix){
	flag=-1;
	if(n<0){
		flag=1;
		n=-n;
	}
	string ans="";
	do{
		int t=n%radix;
		if(t>=0&&t<=9)	ans+=t+'0';
		else ans+=t-10+'A';
		n/=radix;
	}while(n!=0);
	reverse(ans.begin(),ans.end());
	return ans;	
}
int main(){
	int n,m;
	while(cin>>n>>m){
		string a=intToA(n,m);
		if(flag==1) cout<<'-';
		cout<<a<<endl;
	}
	return 0;
}

1108 问题 N: 零基础学C/C++108——程序设计竞赛

#include<bits/stdc++.h>
using namespace std;
int main(){
	int n;
	while(cin>>n){
		int a[100]={};
		for(int i=0;i<n;i++)
			cin>>a[i];
		sort(a,a+n);
		for(int i=n-1;i>=0;i--)
			cout<<a[i]<<" ";
		cout<<endl;
	} 
	return 0;
} 

1109 问题 O: 零基础学C/C++109——省赛归来

#include<bits/stdc++.h>
using namespace std;
int main(){
	int n;
	while(cin>>n and n!=0){
		int a[100]={};
		for(int i=0;i<n;i++)
			cin>>a[i];
		for(int i=0;i<n;i++)
			for(int j=i;j<n;j++)
				if(abs(a[i])<abs(a[j])) swap(a[i],a[j]);
		for(int i=0;i<n;i++)
			cout<<a[i]<<" ";
		cout<<endl;
	} 
	return 0;
} 

1110 问题 A: 零基础学C/C++110——N个数从小到大排序

#include<bits/stdc++.h>
using namespace std;
int main(){
	int n;
	while(cin>>n and n!=0){
		int a[100]={};
		for(int i=0;i<n;i++)
			cin>>a[i];
		sort(a,a+n);
		for(int i=n-1;i>=0;i--)
			cout<<a[i]<<" ";
		cout<<endl;
	} 
	return 0;
} 

1111 问题 B: 零基础学C/C++111——N个数从大到小排序

#include<bits/stdc++.h>
using namespace std;
int main(){
	int n;
	while(cin>>n and n!=0){
		int a[100]={};
		for(int i=0;i<n;i++)
			cin>>a[i];
		sort(a,a+n);
		for(int i=0;i<n;i++)
			cout<<a[i]<<" ";
		cout<<endl;
	} 
	return 0;
} 

1112 问题 C: 零基础学C/C++112——偶数排序

#include<bits/stdc++.h>
using namespace std;
int main(){
	int n;
	while(cin>>n and n!=0){
		int a[100]={},x,j=0;
		for(int i=0;i<n;i++){
			cin>>x;
			if(x%2==0)a[j++]=x;
		}
		sort(a,a+j);
		for(int i=j-1;i>=0;i--)
			cout<<a[i]<<" ";
		cout<<endl;
	} 
	return 0;
} 

1113 问题 D: 零基础学C/C++113——并列排名

#include<bits/stdc++.h>
using namespace std;
bool cmp(int x,int y){
	return x>y;
}
int main(){
	int n;
	while(cin>>n){
		int a[100]={},p;
		for(int i=0;i<n;i++)
			cin>>a[i];
		cin>>p; 
		sort(a,a+n,cmp);
		for(int i=0;i<n;i++)
			if(a[i]==p){
				cout<<i+1;
				break;
			}
		cout<<endl;
	} 
	return 0;
} 

1114 问题 E: 零基础学C/C++114——直接插入排序

#include<bits/stdc++.h>
using namespace std;
int main(){
	int t;
	cin>>t;
	for(int q=0;q<t;q++){
		int cnt=0,n,a[2010]={};
		cin>>n;
		for(int i=0;i<n;i++)
			cin>>a[i];
		int k;
		for(int i=1;i<n;i++){
			for(int j=i-1;j>=0;j--){
				k=0;
				if(a[i]>=a[j]){
					k=j+1;
					cnt++;
					break;
				}
				else cnt++;
			}
			int b=a[i];
			for(int j=i;j>k;j--)
				a[j]=a[j-1];
			a[k]=b;
		}				
		cout<<cnt<<endl;
		for(int i=0;i<n;i++)
			cout<<a[i]<<" ";
		cout<<endl;
	}
	return 0;
}

1115 问题 F: 零基础学C/C++115——校友捐款

#include<bits/stdc++.h>
using namespace std;
int main(){
	int n;
	while(cin>>n){
		int a[1000]={},sum=0,max0=-1;
		for(int i=0;i<n;i++){
			cin>>a[i];
			sum+=a[i];
			max0=max(max0,a[i]);
		}
		sort(a,a+n);
		cout<<sum<<" "<<max0<<" ";
		for(int i=n-1;i>=0;i--)
			cout<<a[i]<<" ";
		cout<<endl;
	} 
	return 0;
} 

1116 问题 A: 零基础学C/C++116——矩阵转置

#include<bits/stdc++.h>
using namespace std;
int main(){
	int n,m;
	while(cin>>n>>m){
		int a[15][15]={};
		for(int i=1;i<=n;i++)
			for(int j=1;j<=m;j++)
				cin>>a[i][j];
		for(int i=1;i<=m;i++){
			for(int j=1;j<=n;j++)
				cout<<a[j][i]<<" ";
			cout<<endl;
		}
	}
	return 0;
}

1117 问题 B: 零基础学C/C++117——输出矩阵

#include<bits/stdc++.h>
using namespace std;
int main(){
	int n,m;
	while(cin>>n>>m){
		int k=0;
		for(int i=1;i<=n;i++){
			for(int j=1;j<=m;j++)
				cout<<++k<<" ";
			cout<<endl;
		}
	}
	return 0;
}

1118 问题 C: 零基础学C/C++118——弓型矩阵

#include<bits/stdc++.h>
using namespace std;
int main(){
	int n,m;
	while(cin>>n>>m){
		int p=0,q=0;
		for(int i=1;i<=n;i++){
			if(i%2==1){
				for(int j=1;j<=m;j++)
					printf("%2d ",++p);	
			}
			else{
				p+=m+1;
				for(int j=1;j<=m;j++)
					printf("%2d ",--p);
				p+=m-1;
			}
			cout<<endl;
		}
	}
	return 0;
}

1119 问题 D: 零基础学C/C++119——矩阵整理

#include<bits/stdc++.h>
using namespace std;
int main(){
	int m,n;
	while(cin>>m>>n){
		int a[15][15]={},sum;
		for(int i=1;i<=m;i++){
			sum=0;
			for(int j=1;j<=n;j++){
				cin>>a[i][j];
				sum+=a[i][j];
			}
			a[i][n+1]=sum;
		}
		for(int j=1;j<=n+1;j++)
			cout<<a[m][j]<<" ";
		cout<<endl;
		for(int i=2;i<=m-1;i++){
			for(int j=1;j<=n+1;j++)
				cout<<a[i][j]<<" ";
			cout<<endl;
		}
		for(int j=1;j<=n+1;j++)
			cout<<a[1][j]<<" ";
		cout<<endl;
	}
	return 0;
} 

1120 问题 E: 零基础学C/C++120——矩阵对角线求和

#include<bits/stdc++.h>
using namespace std;
int main(){
	int n;
	while(cin>>n){
		int a[15][15]={},sum1=0,sum2=0,p=n+1;
		for(int i=1;i<=n;i++){
			p--;
			for(int j=1;j<=n;j++){
				cin>>a[i][j];//其实用不到数组2333 
				if(i==j)sum1+=a[i][j];
				if(j==p)sum2+=a[i][j];
			}
		}
		cout<<sum1<<" "<<sum2;
		cout<<endl;
	}
	return 0;
} 

1121 问题 F: 零基础学C/C++121——判断是否上三角矩阵

#include<bits/stdc++.h>
using namespace std;
int main(){
	int n;
	while(cin>>n){
		int a[15][15]={},p,f=-1;
		for(int i=1;i<=n;i++){
			p=i-1;
			for(int j=1;j<=n;j++){
				cin>>a[i][j];
				if(j<=p and a[i][j]!=0) f=1;
			}
		}
		if(f==1) cout<<"NO";
		else cout<<"YES";
		cout<<endl;
	}
	return 0;
} 

未完待续 2021.10.3

1122 问题 G: 零基础学C/C++122——杨辉三角

#include<bits/stdc++.h>
using namespace std;
#define LL unsigned long long
int main(){
	int n;
	while(cin>>n){
		if(n==1){
			cout<<"1\n\n";
			continue;
		}
		LL a[100][100]={};
		for(int i=1;i<=n;i++){
			a[i][1]=1;
			a[i][i]=1;
		}
		cout<<"1\n";
		cout<<"1 1\n";
		for(int i=3;i<=n;i++){
			cout<<"1 ";
			for(int j=2;j<i;j++){
				a[i][j]=a[i-1][j-1]+a[i-1][j];
				cout<<a[i][j]<<" ";
			}
			cout<<"1\n";
		}
		cout<<endl;
	}
	return 0;
}
/* 此题不能用通项公式,阶乘暴力算,会溢出! */
/* 
#include<bits/stdc++.h>
using namespace std;
#define LL unsigned long long
LL JC(int n){
	LL jc=1;
	for(LL i=1;i<=n;i++)
		jc*=i;
	return jc;
}
LL C(int n,int m){
	return JC(n-1)/(JC(m-1)*JC(n-m));
}
int main(){
	int n;
	while(cin>>n){
		for(int i=1;i<=n;i++){
			for(int j=1;j<=i;j++){
				if(j==i){
					printf("%llu",C(i,j));
					continue;
				}
				printf("%llu ",C(i,j));
			}
			cout<<endl;
		}
		cout<<endl;
	}
	return 0;
}
*/

1123 问题 H: 零基础学C/C++123——矩阵鞍点

AC 100% 代码(借用了网上的思路)

#include <iostream>
using namespace std;
int main(){
    int n;
    while(cin>>n){
    	int i,j,a[6][6];
	    for(i=0;i<n;i++)  
	        for(j=0;j<n;j++)
	            cin>>a[i][j];
	    int k=0,y=0,flag=-1,p=0;  
	    if(n==1) cout<<"0 0\n";
	    else{
	        for(i=0;i<n;i++){
	            y=i;
	            for(p=0;p<n;p++)
	                if(a[i][k]<=a[i][p]) k=p;
	            
	            for(j=0;j<n;j++)
	                if(a[y][k]>a[j][k]){
	                    y=j;
	                    break;
	                }
	            if(i==y){
	                flag=0;
	                break;
	            }
	        }
	        if(flag==0) printf("%d %d\n",i,k);
	        else cout<<"NO\n";
	    }
	}
    return 0;
}

AC 80% 代码

#include<bits/stdc++.h>
using namespace std;
int main(){
	int n;
	while(cin>>n){
		int a[15][15]={};
		int x[15]={},y[15]={},p1[15]={},p2[15]={},q1[15]={},q2[15]={};
		memset(x,-1,sizeof(x));
		memset(y,100,sizeof(y));
		for(int i=0;i<n;i++){
			for(int j=0;j<n;j++){
				cin>>a[i][j];
				if(x[i]<a[i][j]){
					x[i]=a[i][j];
					p1[i]=i;
					p2[i]=j;
				}
			}
		}
		if(n==1){
			cout<<"0 0"<<endl;
			continue;
		}
		for(int j=0;j<n;j++){
			for(int i=0;i<n;i++){
				if(y[j]>a[i][j]){
					y[j]=a[i][j];
					q1[j]=i;
					q2[j]=j;
				}
			}
		}
		int f=-1;
		for(int i=0;i<n;i++){
			for(int j=0;j<n;j++){
				if(x[i]==y[j] and p1[i]==q1[j] and p2[i]==q2[j]){
					cout<<p1[i]<<" "<<p2[j];
					f=1;
				}
			}
		}
		if(f==-1)cout<<"NO";
		cout<<endl;
	}
	return 0;
} 

1124 问题 I: 零基础学C/C++124——海选女主角
这道题 题目真***恶心
在这里插入图片描述

#include<bits/stdc++.h>
#define LL long long
using namespace std;
int main(){
	int n,m;
	while(cin>>n>>m){
		int p,q;
		LL max0=0;
		for(int i=1;i<=n;i++){
			for(int j=1;j<=m;j++){
			    LL tmp;
			    cin>>tmp;
				if( abs(max0) < abs(tmp) ){
					max0=tmp;
					p=i;q=j;
				}
			}
		}
		printf("%d %d %lld\n",p,q,max0);
	}
	return 0;
} 

1125 问题 J: 零基础学C/C++125——矩阵乘积

#include<iostream>
#include<cstring>
using namespace std;
int main(){
	int a[15][15],b[15][15],c[15][15]={};
	int m,n,i,j,k;
	while(cin>>m>>n){
		memset(c,0,sizeof(c));
		for(i=0;i<m;i++)
			for(j=0;j<n;j++)
				cin>>a[i][j];
		for(i=0;i<n;i++)
			for(j=0;j<m;j++)
				cin>>b[i][j];
		for(i=0;i<m;i++)
			for(j=0;j<m;j++)
				for(k=0;k<n;k++)
					c[i][j]+=a[i][k]*b[k][j];
		for(i=0;i<m;i++){
			for(j=0;j<m-1;j++)
				cout<<c[i][j]<<" ";
			cout<<c[i][m-1]<<endl;;
		}
	}
	return 0;
}

未完待续 21.10.4

1126 问题 A: 零基础学C/C++126——回型矩阵

这道题折磨了我半天

#include<bits/stdc++.h>
#include<cstring>
using namespace std;
int n,m,i,j;
int a[20][20],b[20][20];
void init0(){
	for(i=0;i<20;i++)
		for(j=0;j<20;j++){
			a[i][j]=0;b[i][j]=-1;
		}
	for(i=0;i<=n+1;i++){
		b[i][0]=1;
		b[i][m+1]=1;
	}
	for(j=0;j<=m+1;j++){
		b[0][j]=1;
		b[n+1][j]=1;
	}
}
void outa(){
	for(i=1;i<=n;i++){
		for(j=1;j<=m;j++)
			printf("%2d ",a[i][j]);
		cout<<endl;
	}
}
int main(){
	int dx[4]={1,0,-1,0},ex;
	int dy[4]={0,1,0,-1},ey;
	while(cin>>n>>m){
		init0();
		int x=1,y=1,k=0;
		ex=0;ey=0;
		while(k<m*n){
			if(b[y][x]==1){
				y-=dy[ey];
				x-=dx[ex];
				ey++;ex++;
				ey%=4;ex%=4;
				y+=dy[ey];
				x+=dx[ex];
			}
			if(b[y][x]==-1){
				k++;
				a[y][x]=k;
				b[y][x]=1;
				y+=dy[ey];
				x+=dx[ex];
			}
		}
		outa();
	}
	return 0;
}

1127 问题 B: 零基础学C/C++127——矩阵下三角元素之和

#include<bits/stdc++.h>
using namespace std;
long long n,i,j,sum,x;
int main(){
	while(cin>>n){
		sum=0;
		for(i=1;i<=n;i++)
			for(j=1;j<=n;j++){
				cin>>x;
				if(j<=i) sum+=x;
			}
		cout<<sum<<endl;
	}
	return 0;
} 

1128 问题 C: 零基础学C/C++128——矩阵计算

又臭又长的代码

#include<iostream>
#include<cstring>
using namespace std;
int n,a[100][100],b[100][100],c[100][100];
int r1,c1,r2,c2,i,j,p1,q1,k;
char s[5];
void output(int x,int y){
    for(int i=0;i<x;i++){
        for(int j=0;j<y;j++)
             cout<<c[i][j]<<" ";
        cout<<endl;
    }
    cout<<endl;
}
void init(){
    memset(a,0,sizeof(a));
    memset(b,0,sizeof(b));
    memset(c,0,sizeof(c));
    cin>>r1>>c1;
	for(i=0;i<r1;i++) for(j=0;j<c1;j++) cin>>a[i][j];
    cin>>r2>>c2;
    for(i=0;i<r2;i++) for(j=0;j<c2;j++) cin>>b[i][j];
}
int main(){
    cin>>n;
    while(n--){
        init();
        while(cin>>s){
            if(s[0]=='e') break;
            if(s[0]=='-'){
            	memset(c,0,sizeof(c));
            	for(i=0;i<r1;i++) for(j=0;j<c1;j++) c[i][j]=a[i][j]-b[i][j];
            	output(r1,c1);
            }
            if(s[0]=='+'){
                memset(c,0,sizeof(c));
                for(i=0;i<r1;i++) for(j=0;j<c1;j++) c[i][j]=a[i][j]+b[i][j];
                output(r1,c1);
            }
            if(s[0]=='*'){
                memset(c,0,sizeof(c));
                for(i=0;i<r1;i++) for(j=0;j<c2;j++) for(k=0;k<c1;k++) c[i][j]+=a[i][k]*b[k][j];
                output(r1,c2);
            }
            if(s[0]=='='){
                for(i=0;i<r1;i++) for(j=0;j<c1;j++) a[i][j]=b[i][j];
            }
        }
    }
    return 0;
}

1129 问题 D: 零基础学C/C++129——蛇行矩阵

#include<bits/stdc++.h>
using namespace std;
int n,k,i,j,x,y;
int kmax;
void KMAX(){
	kmax=0;
	for(i=1;i<=n;i++)
		kmax+=i;
}
int main(){
	while(cin>>n){
		KMAX();
		k=0;
		x=1;y=1;
		int a[110][110];
		while(k<kmax){
			k++;
			a[x][y]=k;
			x--;y++;
			if(x==0){
				x=y;
				y=1;
			}
		}
		int m=n;
		for(i=1;i<=n;i++){
			for(j=1;j<m;j++)
				cout<<a[i][j]<<" ";
			m--;
			cout<<a[i][j]<<endl;
		}
	}
	return 0;
}

1130 问题 E: 零基础学C/C++130——二维数组右上角乘以x

#include<bits/stdc++.h>
using namespace std;
long long n,x,i,j;
long long a[15][15];
int main(){
	while(cin>>n>>x){
		for(i=1;i<=n;i++){
			for(j=1;j<=n;j++){
				cin>>a[i][j];
				if(j>=i) a[i][j]*=x;
			}
		}
		for(i=1;i<=n;i++){
			for(j=1;j<n;j++)
				cout<<a[i][j]<<" ";
			cout<<a[i][j]<<endl;
		}
	}
	return 0;
}

1131 问题 F: 零基础学C/C++131——二维数组左下角置0

#include<bits/stdc++.h>
using namespace std;
int n,i,j;
long long a[15][15];
int main(){
	while(cin>>n){
		for(i=1;i<=n;i++){
			for(j=1;j<=n;j++){
				cin>>a[i][j];
				if(j<=i) a[i][j]=0;
			}
		}
		for(i=1;i<=n;i++){
			for(j=1;j<n;j++)
				cout<<a[i][j]<<" ";
			cout<<a[i][j]<<endl;
		}
	}
	return 0;
}

1132 问题 G: 零基础学C/C++132——边界均值

#include<bits/stdc++.h>
using namespace std;
long long n,i,j;
double sum,k;
long long a[15][15];
int main(){
	while(cin>>n){
		sum=0;
		k=0;
		for(i=1;i<=n;i++){
			for(j=1;j<=n;j++){
				cin>>a[i][j];
				if(i==1 or i==n or j==1 or j==n){
					sum+=a[i][j];
					k++;
				}
			}
		}
		printf("%.2f\n",sum/k);
	}
	return 0;
}

1133 问题 H: 零基础学C/C++133——矩阵A+A’

#include<bits/stdc++.h>
using namespace std;
long long n,i,j;
long long a[15][15],b[15][15];
int main(){
	while(cin>>n){
		for(i=1;i<=n;i++)
			for(j=1;j<=n;j++)
				cin>>a[i][j];
		for(i=1;i<=n;i++)
			for(j=1;j<=n;j++)
				b[i][j]=a[j][i];
		for(i=1;i<=n;i++){
			for(j=1;j<n;j++)
				cout<<a[i][j]+b[i][j]<<" ";
			cout<<a[i][j]+b[i][j]<<endl;
		}
	}
	return 0;
}

1134 问题 I: 零基础学C/C++134——对称矩阵

#include<bits/stdc++.h>
using namespace std;
long long n,i,j,flag;
long long a[15][15],b[15][15];
int main(){
	while(cin>>n){
		flag=-1;
		for(i=1;i<=n;i++)
			for(j=1;j<=n;j++)
				cin>>a[i][j];
		for(i=1;i<=n;i++)
			for(j=1;j<=n;j++)
				b[i][j]=a[j][i];
		for(i=1;i<=n;i++)
			for(j=1;j<=n;j++)
				if(a[i][j]!=b[i][j]) flag=1;
		if(flag==1) printf("No\n");
		else printf("Yes\n");
	}
	return 0;
}

1135 问题 J: 零基础学C/C++135——稀疏矩阵

#include<bits/stdc++.h>
using namespace std;
int n,m,i,j,x;
double d;
int a[1010][1010];
int main(){
	while(cin>>n>>m>>d){
		x=0;
		for(i=0;i<n;i++)
			for(j=0;j<m;j++){
				cin>>a[i][j];
				if(a[i][j]==0)x++;
			}
		double rate=(double) ( (double) (n*m-x)/(double) (n*m) );
		if(rate<d){
			cout<<n<<" "<<m<<endl;
			for(i=0;i<n;i++)
				for(j=0;j<m;j++)
					if(a[i][j]!=0) printf("%d %d %d\n",i,j,a[i][j]);
		}
		else{
			cout<<n<<" "<<m<<endl;
			for(i=0;i<n;i++){
				for(j=0;j<m-1;j++)
					cout<<a[i][j]<<" ";
				cout<<a[i][j]<<endl;
			}
		}
	}
	return 0;
}

未完待续 21.10.5

1136 问题 A: 零基础学C/C++136——反话连篇

#include<bits/stdc++.h>
using namespace std;
int main(){
	char a[110];
	while(cin.getline(a,110)){
		for(int i=strlen(a)-1;i>=0;i--)
			cout<<a[i];
		cout<<endl;
	}
}

1137 问题 B: 零基础学C/C++137——统计字母数字等个数

#include<iostream>
#include<cstring>
using namespace std;
int main(){
	char s[110];
	while(cin.getline(s,110)){
		int num=0,let=0,etc=0,spa=0;
		int len=strlen(s);
		for(int i=0;i<len;i++){
			if(s[i]>='0' and s[i]<='9') num++;
			else if(s[i]>='a' and s[i]<='z') let++;
			else if(s[i]>='A' and s[i]<='Z') let++;
			else if(s[i]==' ') spa++;
			else etc++;
		}
		cout<<let<<" "<<num<<" "<<spa<<" "<<etc<<endl;
	}
	return 0;
}

1138 问题 C: 零基础学C/C++138——查找最大元素

#include<iostream>
#include<cstring>
using namespace std;
int main(){
	char s[110],max0;
	while(cin.getline(s,110)){
		max0='A';
		for(int i=0;i<strlen(s);i++)
			max0=max(max0,s[i]);
		for(int i=0;i<strlen(s);i++){
			cout<<s[i];
			if(max0==s[i])cout<<"(max)";
		}
		cout<<endl;
	}
	return 0;
}

1139 问题 D: 零基础学C/C++139——Yes,I can!

#include<iostream>
#include<cstring>
using namespace std;
int main(){
	char a[10];
	cin>>a;
	printf("I am %s,yes,I can!",a);
	return 0;
}

1140 问题 E: 零基础学C/C++140——统计元音

#include<iostream>
#include<cstring>
using namespace std;
int main(){
	char s[110];
	int n;
	while(cin>>n){
		getchar();
		while(n--){
			gets(s);
			int a=0,e=0,i0=0,o=0,u=0;
			for(int i=0;i<strlen(s);i++){
				if(s[i]=='a') a++;
				if(s[i]=='e') e++;
				if(s[i]=='i') i0++;
				if(s[i]=='o') o++;
				if(s[i]=='u') u++;
			}
			printf("a:%d\ne:%d\ni:%d\no:%d\nu:%d\n",a,e,i0,o,u);
			if(n>0) printf("\n");
		}
	}
	return 0;
}

1141 问题 F: 零基础学C/C++141——回文串

#include<iostream>
#include<cstring>
using namespace std;
int main(){
	char a[100];
	while(gets(a)){
		bool flag=true;
		for(int i=0;i<=strlen(a);i++)
			if(a[i]!=a[strlen(a)-i-1]) flag=false;
		if(flag) cout<<"Yes\n";
		else cout<<"No\n";
	}
	return 0;
} 

1142 问题 G: 零基础学C/C++142——单数变复数

#include<iostream>
#include<cstring>
using namespace std;
int main(){
	char a[100];
	int n;
	cin>>n;
	getchar();
	while(n--){
	//	cin.getline(a,100);
	//	gets(a);
	//getline和gets过不了,cin和scanf能过 
	//	cin>>a;
		scanf("%s",a);
		int len=strlen(a);
		if(a[len-1]=='y')
			cout<<a<<"es";
		else if(a[len-1]=='s' or a[len-1]=='x')
			cout<<a<<"es";
		else if(a[len-2]=='c' and a[len-1]=='h')
			cout<<a<<"es";
		else if(a[len-2]=='s' and a[len-1]=='h')
			cout<<a<<"es";
		else if(a[len-1]=='o')
			cout<<a<<"es";
		else
			cout<<a<<"s";
		if(n!=0)cout<<endl;
	}
	return 0;
}

1143 问题 H: 零基础学C/C++143——绝对公正的裁判

#include<iostream>
#include<cstring>
using namespace std;
int main(){
	int n;
	string a;
	cin>>n;
	while(n--){
		cin>>a;
		if(a=="AC") cout<<"Accepted\n";
		if(a=="PE") cout<<"Presentation Error\n";
		if(a=="WA") cout<<"Wrong Answer\n";
		if(a=="RE") cout<<"Runtime Error\n";
		if(a=="TLE") cout<<"Time Limit Exceeded\n";
		if(a=="MLE") cout<<"Memory Limit Exceeded\n";
		if(a=="OLE") cout<<"Output Limit Exceeded\n";
		if(a=="CE") cout<<"Compilation Error\n";
	}
	return 0;
}

1144 问题 I: 零基础学C/C++144——首字母变大写

#include<bits/stdc++.h>
using namespace std;
int main(){
	char s[120];
	while (gets(s)){
		if(s[0]>='a' and s[0]<='z') cout<<char(s[0]-32);
		else cout<<s[0];
		for(int i=1;i<strlen(s);i++){
			if (s[i-1]==' ' && s[i]>='a' && s[i]<='z') cout<<char(s[i]-32);
			else cout<<s[i];
		}
		cout<<endl;
	}
	return 0;
}

1145 问题 J: 零基础学C/C++145——进制转换II

注意此题的输入数据最大有1000个二进制位,即2^1000

#include<bits/stdc++.h>
using namespace std;
char a[2000],ans[2000];
void b2h(int l,int r,int cnt){
	int base=0;
 	for(int i=1;i<=3-(r-l);i++)
 		base=base<<1;
    for(int i=l;i<=r;i++){
        int b=a[i]-'0';
        base=(base<<1)+b;
    }
    char s[10];
    sprintf(s,"%X",base);
    ans[cnt]=s[0];
}
int main(){
	int n;
	cin>>n;
	while(n--){
		memset(ans,0,sizeof(ans));
		cin>>a;
		int len=strlen(a),cnt=0;
		while(len>=4){
			len-=4;
			b2h(len,len+3,cnt++);
		}
		if(len>0) b2h(0,len-1,cnt);
		for(int i=strlen(ans)-1;i>=0;i--)
			cout<<ans[i];
		cout<<endl;
	}
}

未完待续 21.10.7

1146 问题 A: 零基础学C/C++146——C语言合法标识符

#include<bits/stdc++.h>
using namespace std;
char a[100];
int main(){
	int n;
	cin>>n;
	getchar();
	while(n--){
		int flag=1;
		gets(a);
		if( (a[0]>='a' and a[0]<='z') or (a[0]>='A' and a[0]<='Z') or (a[0]=='_') ){
			;
		}
		else flag=-1;
		for(int i=1;i<strlen(a);i++){
			if( (a[i]>='a' and a[i]<='z') or (a[i]>='A' and a[i]<='Z') or (a[i]=='_') or (a[i]>='0' and a[i]<='9') ){
				;
			}
			else flag=-1;
		}
		if(flag==1)cout<<"yes\n";
		else cout<<"no\n";
	}
	return 0;
} 

1147 问题 B: 零基础学C/C++147——统计每个字母个数

#include<bits/stdc++.h>
using namespace std;
int main(){
	char a[105],b[26];
	while(gets(a)){
		int s[100]={0};
		for(int i=0;i<26;i++){
			int c=0;
			b[i]=i+97;
			for(int j=0;j<strlen(a);j++)
				if(b[i]==a[j] or b[i]==a[j]+32) s[i]=++c;
			if(s[i]>=1) printf("%c: %d\n",b[i],s[i]);		
		}
		cout<<endl;
	}
	return 0;
}

1148 问题 C: 零基础学C/C++148——字符串整理

#include<bits/stdc++.h>
using namespace std;
int main(){
	char a[1000];
	while(gets(a)){
		for(int i=0;i<strlen(a);i++)
			if( (a[i]>='a' and a[i]<='z') or (a[i]>='A' and a[i]<='Z') ) cout<<a[i];	
		cout<<endl;
	}
	return 0;
}

1149 问题 D: 零基础学C/C++149——重组字符串

#include<bits/stdc++.h>
using namespace std;
int main(){
	char a[100];
	while(gets(a)){
		sort(a,a+strlen(a));
		cout<<a<<endl;
	}
	return 0;
}

1150 问题 E: 零基础学C/C++150——统计元音字母数

#include<iostream>
#include<cstring>
using namespace std;
int main(){
	char s[110];
	while(gets(s)){
		int a=0,e=0,i0=0,o=0,u=0;
		for(int i=0;i<strlen(s);i++){
			if(s[i]=='a' or s[i]=='A') a++;
			if(s[i]=='e' or s[i]=='E') e++;
			if(s[i]=='i' or s[i]=='I') i0++;
			if(s[i]=='o' or s[i]=='O') o++;
			if(s[i]=='u' or s[i]=='U') u++;
		}
		printf("%d\n%d\n%d\n%d\n%d\n",a,e,i0,o,u);
	}
	return 0;
}

1151 问题 F: 零基础学C/C++151——检索大写字母

#include<iostream>
#include<cstring>
using namespace std;
int main(){
	char a[1000];
	while(gets(a)){
		int b[100]={};
		for(int i=0;i<strlen(a);i++){
			if(a[i]>='A' and a[i]<='Z' and b[(int)(a[i]-'A')]==0){
				cout<<a[i]<<" ";
				b[(int)(a[i]-'A')]++;
			}
		}
		cout<<endl;
	}
	return 0;
}

1152 问题 G: 零基础学C/C++152——统计单词个数

#include<iostream>
#include<cstring>
using namespace std;
int main(){
	char a[1000];
	while(gets(a)){
		int l=0;
		for(int i=0;i<strlen(a);i++)
			if(a[i]!=' ' and a[i+1]==' ') l++;
		cout<<++l<<endl;
	}
}

1153 问题 H: 零基础学C/C++153——恺撒加密

#include<iostream>
#include<cstring>
using namespace std;
int main(){
	char a[1000];
	while(gets(a)){
		for(int i=0;i<strlen(a);i++){
			if( (a[i]>='A' and a[i]<='U') or (a[i]>='a' and a[i]<='u') )
				a[i]=a[i]-'A'+'F';
			else if( (a[i]>='V' and a[i]<='Z') or (a[i]>='v' and a[i]<='z') )
				a[i]=a[i]-'V'+'A';
		}
		cout<<a<<endl;
	}
	return 0;
}

1154 问题 I: 零基础学C/C++154——加密程序2

#include<iostream>
#include<cstring>
using namespace std;
int main(){
	char a[1000];
	while(gets(a)){
		for(int i=0;i<strlen(a);i++)
			if(a[i]>='A' and a[i]<='Z')
				a[i]=26-(a[i]-'A'+1)+1+'A'-1;
		cout<<a<<endl;
	}
	return 0;
}

*1155 问题 J: 零基础学C/C++155——句子比较大小

#include<iostream>
#include<cstring>
#include<algorithm>
using namespace std;
int main(){
	char nn[100];
	while(gets(nn)){
		//stgg:
		//“83%的数据是win写的,17%的数据是linux写的” 
		//“他们表示回车的字符不一样,win有两个,linux一个 ”
		//“所以不能用cin+getchar,getchar只能吃掉一个字符”
		//采用读入字符串转数字的方法atoi()
		int n=atoi(nn);
		string a[100];
		for(int i=0;i<n;i++)
			getline(cin,a[i]);
		sort(a,a+n);
		for(int i=0;i<n;i++)
			cout<<a[i]<<endl;
		cout<<endl;
	}
	return 0;
}
/*
bool cmp(const string &lhs,const string &rhs){
	return lhs < rhs;
}
*/
//std::sort(a,a+n,[](const std::string &lhs,const std::string &rhs){ return lhs < rhs; });


1156 问题 K: 零基础学C/C++156——删除前导*

#include<iostream>
#include<cstring>
using namespace std;
int main(){
	char a[1000];
	while(cin>>a){
		int flag=-1;
		for(int i=0;i<strlen(a);i++){
			if(a[i]=='*' and flag==-1){
				;
			}
			else{
				cout<<a[i];
				flag=1;
			}
		}
		cout<<endl;
	}
	return 0;
} 

1157 问题 L: 零基础学C/C++157——保留尾部*

#include<iostream>
#include<cstring>
using namespace std;
int main(){
	char a[1000];
	while(cin>>a){
		int cnt=0,flag=-1;
		for(int i=strlen(a)-1;i>=0;i--){
			if(a[i]=='*' and flag==-1) cnt++;
			else flag=1;
		}
		for(int i=0;i<strlen(a);i++){
			if(a[i]=='*') {;}
			else cout<<a[i];
		}
		for(int i=0;i<cnt;i++)
			cout<<'*';
		cout<<endl;
	}
	return 0;
}

1158 问题 M: 零基础学C/C++158——删除中间的*

#include<iostream>
#include<cstring>
using namespace std;
int main(){
	char a[1000];
	while(cin>>a){
		int cnt1=0,flag1=-1;
		int cnt2=0,flag2=-1;
		for(int i=strlen(a)-1;i>=0;i--){
			if(a[i]=='*' and flag1==-1) cnt1++;
			else flag1=1;
		}
		for(int i=0;i<strlen(a);i++){
			if(a[i]=='*' and flag2==-1) cnt2++;
			else flag2=1;
		}
		while(cnt2--)
			cout<<'*';
		for(int i=0;i<strlen(a);i++){
			if(a[i]=='*') {;}
			else cout<<a[i];
		}
		while(cnt1--)
			cout<<'*';
		cout<<endl;
	}
	return 0;
}

1159 问题 N: 零基础学C/C++159——最长字符串

#include<iostream>
#include<cstring>
using namespace std;
int main(){
	int n;
	while(cin>>n){
		string s[100]={};
		int smax=0,p;
		for(int i=0;i<n;i++){
			cin>>s[i];
			if(smax<s[i].size()){
				smax=s[i].size();
				p=i;
			}
		}
		cout<<s[p]<<endl;
	}
	return 0;
}

*1160 问题 O: 零基础学C/C++160——字符串
这道题数据量很大,字符串长度很长,需要做特殊优化
字符串A26个小写英文字母集齐后,直接判断Yes,不用再看字符串B

#include<iostream>
#include<cstring>
using namespace std;
int main(){
	char a[1001000];
	while(cin>>a){
		int cnt1=-1,i,j,sum=0,flag3=-1;
		long long list[30]={0};
		for(i=0;i<strlen(a);i++){
			if(i%26==0){
				sum=0;
				for(j=0;j<26;j++)
					sum+=list[j];
				if(sum==26){
					flag3=2;
					break;
				}
			}
			if(a[i]!='#') list[a[i]-'a']=1;
			else break;
		}
		if(flag3==-1){
			for(j=i+1;j<strlen(a)-1;j++){
				if(list[a[j]-'a']!=1){
					flag3=1;
					break;
				}
			}
		}
		if(flag3==1) cout<<"No\n";
		else cout<<"Yes\n";
	}
	return 0;
}

未完待续21.10.8

1161 问题 A: 零基础学C/C++161——求阶乘的函数

#include<iostream>
using namespace std;
int main(){
	short n;
	while(cin>>n){//懒得用函数hhh 
		long long ans=1; 
		for(int i=1;i<=n;i++)
			ans*=i;
		cout<<ans<<endl;
	}
	return 0;
} 

1162 问题 B: 零基础学C/C++162——求阶乘和

#include<iostream>
using namespace std;
int main(){
	short n;
	while(cin>>n){
		long long ans=1,sum=0; 
		for(int i=1;i<=n;i++){
			ans*=i;
			sum+=ans;
		}	
		cout<<sum<<endl;
	}
	return 0;
} 

1163 问题 C: 零基础学C/C++163——判断是否是素数的函数

#include<iostream>
using namespace std;
int main(){
	int n,i;
	while(cin>>n){
		if(n==1){
			cout<<"No\n";
			continue;
		}
		bool isPrime=true;
		for(i=2;i<=n/2;i++){
			if(n%i==0){
				isPrime=false;
				break;
			}
		}
		if(isPrime) cout<<"Yes\n";
		else cout<<"No\n";
	}
  return 0;
}

1164 问题 D: 零基础学C/C++164——素数判定

#include<iostream>
using namespace std;
int i,j,x,y;
bool ip(int n){
		if(n==1) return false;
		bool isPrime=true;
		for(j=2;j<=n/2;j++){
			if(n%j==0){
				isPrime=false;
				break;
			}
		}
		if(isPrime) return true;
		else return false;
}
int main(){
	while(cin>>x>>y){
		if(x==0 and y==0) break;
		int f=0;
		for(i=x;i<=y;i++){
			if(ip((int)(i*i+i+41))==false){
				f=1;
				cout<<"Sorry\n";
				break;
			}
		}
		if(f==0) cout<<"Ok\n";
	}
	return 0;
}

1165 问题 E: 零基础学C/C++165——输出素数

#include<iostream>
using namespace std;
int i,j,x,y;
bool ip(int n){
		if(n==1) return false;
		bool isPrime=true;
		for(j=2;j<=n/2;j++){
			if(n%j==0){
				isPrime=false;
				break;
			}
		}
		if(isPrime) return true;
		else return false;
}
int main(){
	while(cin>>x>>y){
		int f=0;
		for(i=x;i<=y;i++){
			if(ip(i)==true and f==0){
				f=1;
				cout<<i;
			}
			else if(ip(i)==true and f==1)
				cout<<" "<<i;
		}
		cout<<endl;
	}
	return 0;
}

1166 问题 F: 零基础学C/C++166——求组合数

#include<iostream>
using namespace std;
long long fact(int x){
	long long ans=1;
	for(int i=1;i<=x;i++)
		ans*=i;
	return ans;
}
int main(){
	int n,m;
	while(cin>>n>>m){
		int a,b,c;
		a=fact(n);
		b=fact(m);
		c=fact(n-m);
		cout<<a/(b*c)<<endl;
	}
	return 0;
} 

1167 问题 G: 零基础学C/C++167——判断是否完数

#include<iostream>
using namespace std;
void perf(int x){
	int s=0;
    for(int j=1;j<x;j++)
    	if(x%j==0) s+=j; 
	if(s==x) cout<<x<<" ";
}
int main(){
    int n,m;
    while(cin>>n>>m){
    	for(int i=n;i<=m;i++)
    		perf(i);
		cout<<endl;
	}
    return 0;
}

1168 问题 H: 零基础学C/C++168——统计数字

#include<bits/stdc++.h>
using namespace std;
int cnt(long long n,char m){
	char s[100]={0};
	sprintf(s,"%lld",n);
	int ans=0;
	for(int i=0;i<strlen(s);i++)
		if(s[i]==m) ans++;
	return ans;
}
int main(){
	long long n;
	char m;
	while(cin>>n>>m)
		cout<<cnt(n,m)<<endl;
	return 0;
}

1169 问题 I: 零基础学C/C++169——调用函数,求三个数中最大数

#include<bits/stdc++.h>
using namespace std;
int main(){
	int a,b,c;
	while(cin>>a>>b>>c)
		cout<<max(a,max(b,c))<<endl;
	//有库不用,罚款50 
	return 0;
}

1170 问题 A: 零基础学C/C++170——输出学生信息

#include<bits/stdc++.h>
using namespace std;
int main(){
	char a[100],b[100],c[100],d[100];
	cin>>a>>b>>c>>d;
	printf("%s %s %s %s\n",a,b,c,d);
	//保留小数?不存在的 
	return 0;
} 

1171 问题 B: 零基础学C/C++171——年龄排序

#include<bits/stdc++.h>
using namespace std;
struct node{
	string na,se;
	int ye,mo;
	
}st[1000];
bool  cmp(node x,node y){
	if(x.ye == y.ye ) return x.mo > y.mo;
	else return x.ye>y.ye;
}
int main(){
	int n;
	cin>>n;
	for(int i=0;i<n;i++)
		cin>>st[i].na>>st[i].se>>st[i].ye>>st[i].mo;
	sort(st,st+n,cmp);
	for(int i=0;i<n;i++)
		printf("%s %s %d %d\n",st[i].na.c_str(),st[i].se.c_str(),st[i].ye,st[i].mo);
	return 0;
} 

不是排版问题 题号确实是这样

*1173 问题 C: 零基础学C/C++173——桌面窗体重叠

这道题需要稍微想一想,代码很简单。

#include<bits/stdc++.h>
using namespace std;
int main(){
	int a[10]={},b[10]={},s=0;
	cin>>a[1]>>a[2]>>b[1]>>b[2];
	cin>>a[3]>>a[4]>>b[3]>>b[4];
	if(a[2]<=a[3] or b[2]<=b[3] or a[4]<=a[1] or b[4]<=b[1]){
		cout<<0;return 0;
	}
	sort(a,a+5);sort(b,b+5);
	s=(a[3]-a[2])*(b[3]-b[2]);
	cout<<s;
	return 0;
}

1174 问题 D: 零基础学C/C++174——作业统计

#include<bits/stdc++.h>
using namespace std;
int main(){
	int n;
	cin>>n;
	int a,b,c;
	long long a1=0,b1=0,c1=0;
	for(int i=0;i<n;i++){
		cin>>a>>b>>c;
		a1+=a;b1+=b;c1+=c;
	}
	b1+=c1/60;c1%=60;
	a1+=b1/60;b1%=60;
	printf("%lldhour %lldminute %lldsecond",a1,b1,c1);
	return 0;
} 

1175 问题 E: 零基础学C/C++175——身高问题

#include<bits/stdc++.h>
using namespace std;
struct node{
	string na;
	int h,id;
}st[1000];
bool  cmp(node x,node y){
	if(x.h == y.h ) return x.id < y.id;
	else return x.h>y.h;
}
int main(){
	int n;
	cin>>n;
	for(int i=0;i<n;i++)
		cin>>st[i].na>>st[i].h>>st[i].id;
	sort(st,st+n,cmp);
	printf("%s %d %d\n",st[0].na.c_str(),st[0].h,st[0].id);
	return 0;
} 

1176 问题 F: 零基础学C/C++176——生日相同问题

这道题可以用结构体数组+sort,但手写一个选择排序也问题不大。

#include<bits/stdc++.h>
using namespace std;
int main(){
	int n;
	cin>>n;
	string a[300]={};
	int b[300]={0},c[300]={0};
	int buc[100][100]={0};
	for(int i=0;i<n;i++)
		cin>>a[i]>>b[i]>>c[i];
	for(int i=0;i<n;i++){
		for(int j=i;j<n;j++){
			if(a[i].size()>a[j].size()){
				swap(a[i],a[j]);
				swap(b[i],b[j]);
				swap(c[i],c[j]);
			}
			else if(a[i].size()==a[j].size()){
				if(a[i]>a[j]){
					swap(a[i],a[j]);
					swap(b[i],b[j]);
					swap(c[i],c[j]);
				}
			}
		}
	}
	for(int i=0;i<n;i++)
		buc[b[i]][c[i]]++;
	int flag=0;
	for(int i=1;i<=12;i++){
		for(int j=1;j<=31;j++){
			if(buc[i][j]>1){
				cout<<i<<" "<<j;
				flag=1;
				for(int k=0;k<n;k++)
					if(b[k]==i and c[k]==j) cout<<" "<<a[k];
				cout<<endl;
			}
		}
	}
	if(flag==0) cout<<"None\n";
	return 0;
}

1178 问题 G: 零基础学C/C++178——成绩统计

#include<bits/stdc++.h>
using namespace std;
int main(){
	int n;
	cin>>n;
	string a;
	int b,sum=0;
	int c1=0;
	char x;
	for(int i=0;i<n;i++){
		cin>>x;
		if(x=='C'){
			c1++;
			cin>>a;
		}
		if(x=='N'){
			cin>>b;
			sum+=b;
		}
	}
	cout<<c1<<" "<<sum/(n-c1);
	return 0;
}

1179 问题 H: 零基础学C/C++179——注册账号

#include<bits/stdc++.h>
using namespace std;
int main(){
	int n;
	cin>>n;
	char o;
	char s[20];
	long long q;
	unsigned long long sum=0;
	int man=0,wom=0;
	for(int i=0;i<n;i++){
		cin>>o;
		if(o=='i'){
			cin>>s;
			if((s[16]-'0')%2==0) wom++;
			else man++;
		}
		else{
			cin>>q;
			sum+=q;
		}
	}
	cout<<man<<" "<<wom<<" "<<sum/(n-man-wom);
	return 0;
}

1172 问题 I: 零基础学C/C++172——猴子选大王

#include<bits/stdc++.h>
using namespace std;
int main(){
	//约瑟夫环问题 
	int i,j,n,a[1010],t,len; 
	long long m;
	cin>>n>>m; 
	len=n;
	for(i=0;i<n;i++)
		a[i]=i+1;
	i=0;
	while(n>1){
		i=(i+m-1)%n;//套公式 
		t=a[i];
		for(j=i;j<n-1;j++)
			a[j]=a[j+1];
		n--;
	}
	reverse(a,a+len);
	cout<<a[len-1];
	return 0;
}

未完待续 21.10.9

1180 问题 A: 零基础学C/C++180——数字变化

#include<iostream>
using namespace std;
int main(){
	int a,b;
	cin>>a>>b;
	a>=b?cout<<b*2:cout<<a*2;
	return 0;
}

1181 问题 B: 零基础学C/C++181——猜拳

#include<iostream>
using namespace std;
int main(){
	int a,b;
	cin>>a>>b;
	int f=0;
	if(a==1){
		if(b==1)f=3;
		if(b==2)f=1;
		if(b==3)f=2;
	}
	if(a==2){
		if(b==1)f=2;
		if(b==2)f=3;
		if(b==3)f=1;
	}
	if(a==3){
		if(b==1)f=1;
		if(b==2)f=2;
		if(b==3)f=3;
	}
	if(f==1)cout<<"win";
	if(f==2)cout<<"lose";
	if(f==3)cout<<"tie";
	return 0;
}

1182 问题 C: 零基础学C/C++182——墨汁

#include<iostream>
using namespace std;
int main(){
	int n,m,t=0,q;
	cin>>n>>m;
	while(n>=m){
		q=n%m;
		t=t+n-q;
		n=n/m+q;
	}
	t+=n;
	if(m-n==1) t++;
	cout<<t;
	return 0;
}

1183 问题 D: 零基础学C/C++183——数组逆序

#include<iostream>
using namespace std;
int main(){
	int n;
	cin>>n;
	long long a[n+10]={};
	for(int i=0;i<n;i++)
		cin>>a[i];
	for(int i=n-1;i>=0;i--)
		cout<<a[i]<<" ";
	return 0;
} 

1184 问题 E: 零基础学C/C++184——吉祥数

#include<bits/stdc++.h>
#define LL long long
using namespace std;
LL squre(int tstu,int index){
    LL ans=0;
    while(tstu>0){
        ans+=pow(tstu%10,index+1);
        tstu/=10;
    }
    return ans;
}
int main(){
	int n,stulen=0,grolen=0;
	cin>>n;
	LL stu[300],group[300];
	while(cin>>stu[stulen] and stu[stulen]!=-1)
		stulen++;
	sort(stu,stu+stulen);
	for(int i=1;i<=n;i++){
		grolen=0;
		for(int j=0;j<stulen;j++)
			group[grolen++]=squre(stu[j],i);
        for(int j=0;j<grolen;j++)
            for(int k=0;k<stulen;k++)
            	if(group[j]==stu[k]) stu[k]=0;
    }
    for(int i=0;i<stulen;i++)
        if(stu[i]!=-1 and stu[i]!=0) cout<<stu[i]<<" ";
	return 0;
}

1185 问题 F: 零基础学C/C++185——行列转换

#include<iostream>
#include<cstring>
#include<algorithm>
using namespace std;
struct node{
	int row,col;
	long long val;
	int num;
}a[10000];
bool cmp(node x,node y){
	if(x.col==y.col) return x.num<y.num;
	else return x.col<y.col ;
}
int main(){
	int n,m,k;
	cin>>n>>m>>k;
	for(int i=0;i<k;i++){
		cin>>a[i].row>>a[i].col>>a[i].val;
		a[i].num=i;
	}
	sort(a,a+k,cmp);
	cout<<a[0].val;
	for(int i=1;i<k;i++)
		cout<<" "<<a[i].val;
	return 0;
} 

1186 问题 G: 零基础学C/C++186——支撑数

#include<iostream>
using namespace std;
int main(){
	int n;
	cin>>n;
	int a[n+10];
	for(int i=0;i<n;i++)
		cin>>a[i];
	for(int i=1;i<n-1;i++)
		if(a[i-1]<a[i] and a[i]>a[i+1]) cout<<a[i]<<" ";
	return 0;
} 

1187 问题 H: 零基础学C/C++187——美丽的黄山

#include<iostream>
using namespace std;
int main(){
	int n;
	cin>>n;
	int a[n+10],max=-1,ans=0;
	for(int i=0;i<n;i++){
		cin>>a[i];
		if(a[i]>max){
			ans++;
			max=a[i];
		}
	}
	cout<<ans;
	return 0;
} 

1188 问题 I: 零基础学C/C++188——编字典

本题我使用了快读和快写

#include<iostream>
#include<cstring>
#include<algorithm>
using namespace std;
inline string StringRead(){
    string str;
    char s=getchar();
    while (s==' ' || s=='\n' || s=='\r')
        s=getchar();
    while (s!=' ' && s!='\n' && s!='\r'){
        str+=s;
        s=getchar();
    }
    return str;
}
inline void StringWrite(std::string str){
    int i=0;
    while (str[i]!='\0')
        putchar(str[i]), i++;
}
int main(){
	int n;
	cin>>n;
	string a[100000]={};
	for(int i=0;i<n;i++)
		a[i]=StringRead();
	sort(a,a+n);
	for(int i=0;i<n;i++){
		StringWrite(a[i]);
		printf("\n");
	}
	return 0;
}

1189 问题 J: 零基础学C/C++189——模拟计算器

#include<iostream>
using namespace std;
int main(){
    int m,n;
    cin>>m>>n;
    int k;
    cin>>k;
    if(k==1) cout<<m+n;
    if(k==2) cout<<m-n;
    if(k==3) cout<<m*n;
    if(k==4) cout<<int(m/n);
    return 0;
}

1190 问题 K: 零基础学C/C++190——冒泡排序

#include<iostream>
using namespace std;
int main(){
    int n;
    cin>>n;
    long long a[1000];
    for(int i=0;i<n;i++)
        cin>>a[i];
    for(int i=0;i<n;i++)
        for(int j=i;j<n;j++)
            if(a[i]>a[j]) swap(a[i],a[j]);
    for(int i=0;i<n;i++)
        cout<<a[i]<<" ";
}
  • 19
    点赞
  • 77
    收藏
    觉得还不错? 一键收藏
  • 2
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值