HDOJ 2021-2030

2021 发工资咯:)

#include<bits/stdc++.h>
int main(){
    
    
	int n;
	while(~scanf("%d",&n)){
    
    
		if(n==0) break;
		int sum=0,individual=0;
		for(int i=0;i<n;i++){
    
    
			scanf("%d",&individual);
			int bai = individual/100;
			int wushi = (individual-bai*100)/50;
			int shi = (individual-bai*100-wushi*50)/10;
			int wu = individual%10/5;
			int er = (individual%10-5*wu)/2;
			int yi = individual%10-5*wu-er*2; 
			sum += bai+wushi+shi+wu+er+yi;
		}
		printf("%d\n",sum);
	}
	return 0;
} 

2022 海选女主角

#include<bits/stdc++.h>
int main(){
    
    
	int m,n;
	while(~scanf("%d %d",&m,&n)){
    
    
		int max=0,num,loc = 1;
		for(int i=1;i<=m*n;i++){
    
    
			scanf("%d",&num);
			if( abs(max)<abs(num) ){
    
    
				max = num;
				loc = i;
			}
		}
		printf("%d %d %d\n",loc%n==0?loc/n:loc/n+1,loc%n==0?n:loc%n,max);
	}
	return 0;
}

2023 求平均成绩

#include<bits/stdc++.h>
int main(){
    
    
	int n,m;
	while(~scanf("%d %d",&n,&m)){
    
    
		double exam[n][m];
		for(int j=0;j<n;j++){
    
    
			for(int i=0;i<m;i++){
    
    
				scanf("%lf",&exam[j][i]);
			}
		}
		for(int i=0;i<n;i++){
    
    
			double sum=0;
			for(int j=0;j<m;j++){
    
    
				sum += exam[i][j];
			}
			if(i>0) printf(" "); 
			printf("%.2f",sum/m); //每个学生的平均成绩 
			if(i==(n-1)) printf("\n");
		}
		double class_aver[m]; 
		for(int i=0;i<m;i++){
    
    
			double sum=0;
			for(int j=0;j<n;j++){
    
    
				sum += exam[j][i];
			}
			class_aver[i] = sum/n;
			if(i>0) printf(" ");
			printf("%.2f",sum/n); //每门课的平均成绩 
			if(i==(m-1)) printf("\n");
		}
		int num=0;
		for(int i=0;i<n;i++){
    
    
			int sign=0;
			for(int j=0;j<m;j++){
    
    
				if(exam[i][j]>=class_aver[j]) sign++;
			}
			if(sign==m) num++;
		}
		printf("%d\n",num);
		printf("\n");
	}
	return 0;
}

2024 C语言合法标识符

C语言合法标识符要求:
由字母数字下划线组成且首字符不能是数字。不允许有空格。

#include<bits/stdc++.h>
int main(){
    
    
	int n;
	while(~scanf("%d",&n)){
    
    
		getchar();
		char ch;
		for(int i=0;i<n;i++){
    
    
			int len=0;
			int sign=0;
			while(~scanf("%c",&ch)){
    
    
				if(ch=='\n') break;
				if(len==0 && !((65<=ch && ch<=90) || (97<=ch && ch<=122) || ch==95)) sign++;
				if(len!=0 && !((65<=ch && ch<=90) || (97<=ch && ch<=122) || ch==95 || (48<=ch&&ch<=57))) sign++;
				len++;				
			}
			if(sign==0) printf("yes\n");
			else printf("no\n");
		}
	}
	return 0;
} 

2025 查找最大元素

#include<bits/stdc++.h>
int main(){
    
    
	char ch[100],letter,max='a';
	int len=0;
	while(~scanf("%c",&letter)){
    
    
		if(letter=='\n') {
    
    
			if(len==0) break;
			for(int i=0;i<len;i++){
    
    
				if(ch[i]==max) printf("%c(max)",ch[i]);
				else printf("%c",ch[i]);
			}
			printf("\n");
			max='a';
			len=0;
		}else{
    
    
			ch[len]=letter;
			len++;
			if(letter>max) max=letter;
		}
	}
	return 0;
}

2026 首字母变大写

#include<bits/stdc++.h>
int main(){
    
    
	char ch[100],letter;
	int len=0,sign=0;
	while(scanf("%c",&letter)){
    
    
		if(letter=='\n'){
    
    
			if(len==0) break;
			for(int i=0;i<len;i++){
    
    
				if(i==0 || sign){
    
    
					printf("%c",(97<=ch[i]&&ch[i]<=122)?ch[i]-32:ch[i]);
					sign=0; 
				} 
				else if(ch[i]==32){
    
    
						sign=1;
						printf(" ");
					}
				else{
    
    
					printf("%c",ch[i]);
				}
			}
			printf("\n");
			len=0;
		}else{
    
    
			ch[len] = letter;
			len++;			
		}
	}
	return 0;
}

2027 统计元音

#include<bits/stdc++.h>
int main(){
    
    
	int n;
	char letter;
	scanf("%d",&n);
	getchar(); 
	for(int i=0;i<n;i++){
    
    
		int num[5]={
    
    0,0,0,0,0};
		while(scanf("%c",&letter)){
    
    
			if(letter=='\n'){
    
    
				printf("a:%d\n",num[0]);
				printf("e:%d\n",num[1]);
				printf("i:%d\n",num[2]);
				printf("o:%d\n",num[3]);
				printf("u:%d\n",num[4]);
				if(i!=(n-1)) printf("\n");
				break;
			}
			switch (letter){
    
    
				case 'a':num[0]++;break;
				case 'e':num[1]++;break;
				case 'i':num[2]++;break;
				case 'o':num[3]++;break;
				case 'u':num[4]++;break;
				case 'A':num[0]++;break;
				case 'E':num[1]++;break;
				case 'I':num[2]++;break;
				case 'O':num[3]++;break;
				case 'U':num[4]++;break;
			}
		}			
	}
	return 0;
}

2028 Lowest Common Multiple Plus

计算最小公倍数,如果写成a*b/gcd(a,b),可能会溢出导致WA。所以写成a/gcd(a,b) *b。
我也尝试改数据类型为long long int,但是还是WA。不知道为什么。

#include<bits/stdc++.h>
int GCD(int a, int b){
    
    
	return b==0?a:GCD(b, a%b);
}
int main(){
    
    
	int n;
	while(~scanf("%d",&n)){
    
    
		int num[n];
		for(int i=0;i<n;i++){
    
    
			scanf("%d",&num[i]);
		}
		for(int i=0;i<n-1;i++){
    
    
			num[i+1] = num[i+1] / GCD(num[i],num[i+1]) * num[i];
		}
		printf("%d\n",num[n-1]);
	}
	return 0;
}

2029 Palindromes _easy version

因为不知道每一行的字符串的长度,所以预先定义一个较长的字符串数组。感觉有点不严谨。

#include<bits/stdc++.h>
int main(){
    
    
	int n;
	scanf("%d",&n);
	char ch[2048];
	while(n--){
    
    
		int sign=0;
		scanf("%s",&ch);
		int start=0,end=strlen(ch)-1;
		while(start<end){
    
    
			if(ch[start]!=ch[end]) {
    
    
				sign=1;
				break;
			}
			else start++,end--;
		}
		if(sign) printf("no\n");
		else printf("yes\n");
	}
	return 0;
}

2030 汉字统计

了解汉字机内码需要先了解ASCII码。
ASCII码使用7位二进制数(最高位为0)来表示所有的大写和小写字母,数字0 到9、标点符号,以及在美式英语中使用的特殊控制字符。
比如:字母A的ASCII码:0100 0001;字母a的ASCII码:0110 0001


汉字机内码,又称“汉字ASCII码”,简称“内码”,指计算机内部存储,处理加工和传输汉字时所用的由0和1符号组成的代码。
国标码的机内码为二字节长的代码,它是在相应国标码的每个字节最高位上加“1”,即
汉字机内码=汉字国标码+8080H
比如:啊”字的国标码是3021H(0011 0000 0010 0001),其汉字机内码则是B0A1H(1011 0000 1010 0001)


还需要知道,强制类型转换(int),可以把char类型转换为ASCII码数值,并且是带正负的。并且在有符号整数中,最高为0表示整数,1表示负数。
这样的话,很容易可以看到,汉字机内码的每一个字节(10110000 10100001),如果转换成有符号整数的话,都是负数。
举例:
机内码 D5C5(1101 0101 1100 0101)
张 补码(1010 1011 1011 1011)即十进制 -43 -59
峰 机内码 B7E5(1011 0111 1110 0101)
峰 补码 (1100 1001 1001 1011)即十进制 -73 -27
这样,只要把输入的每一个字节都转换成ASCII码,找到相邻的两个负数就表示存在一个汉字。

#include<bits/stdc++.h>
int main(){
    
    
	int n;
	scanf("%d",&n);
	getchar();
	char ch[666];
	while(n--){
    
    
		char letter;
		double sign=0;
		while(scanf("%c",&letter)){
    
    
			if(letter=='\n') break;
			if(int(letter)<0) {
    
    
				sign +=0.5;
				//printf("%d",int(letter));  //输出转换后十进制整数 
			}
		}
		printf("%d\n",(int)sign);
	}
	return 0;
}

效果图

猜你喜欢

转载自blog.csdn.net/qq_46523755/article/details/114802521