蓝桥杯 基础练习 1-4
闰年判断
-------------------------------------------
给定一个年份,判断这一年是不是闰年。
当以下情况之一满足时,这一年是闰年:
1. 年份是4的倍数而不是100的倍数;
2. 年份是400的倍数。
其他的年份都不是闰年。
说明:当试题指定你输出一个字符串作为结果(比如本题的yes或者no,你需要严格按照试题中给定的大小写,写错大小写将不得分。
1 #include <stdio.h> 2 3 int main(){ 4 int y; 5 scanf("%d",&y); 6 if(y%400==0 || (y%100!=0 && y%4==0)) 7 printf("yes\n"); 8 else 9 printf("no\n"); 10 return 0; 11 }
-------------------------------------------
对于长度为5位的一个01串,每一位都可能是0或1,一共有32种可能。它们的前几个是:
00000
00001
00010
00011
00100
请按从小到大的顺序输出这32种01串。
00001
00010
00011
<以下部分省略>
1 #include <stdio.h> 2 int main(){ 3 int i; 4 char a[6]; 5 for(i=0;i<32;++i){ 6 printf("%d%d%d%d%d\n",i/16,i%16/8,i%8/4,i%4/2,i%2); 7 } 8 return 0; 9 }
说明:看到其他人写的代码时,才发现自己写的是有多渣。
-------------------------------------------
利用字母可以组成一些美丽的图形,下面给出了一个例子:
ABCDEFG
BABCDEF
CBABCDE
DCBABCD
EDCBABC
这是一个5行7列的图形,请找出这个图形的规律,并输出一个n行m列的图形。
BABCDEF
CBABCDE
DCBABCD
EDCBABC
1 #include <stdio.h> 2 #include <math.h> 3 int main(){ 4 int m,n; 5 int i,j; 6 char a = 'A'; 7 scanf("%d%d",&m,&n); 8 for(i=0;i<m;i++){ 9 for(j=0;j<n;j++) 10 printf("%c",a+abs(i-j)); 11 printf("\n"); 12 } 13 return 0; 14 }
说明: 大神说,仔细分析后会发现,每个字母都是 |行-列|+A 。果然我还差得很远。。
-------------------------------------------
给出n个数,找出这n个数的最大值,最小值,和。
第一行为整数n,表示数的个数。
第二行有n个数,为给定的n个数,每个数的绝对值都小于10000。
1 3 -2 4 5
-2
11
1 #include <stdio.h> 2 int main(){ 3 int n,i; 4 int temp; 5 scanf_s("%d",&n); 6 scanf_s("%d",&temp); 7 int min=temp,max=temp,sum=temp; 8 for(i=1;i<n;i++){ 9 scanf_s("%d",&temp); 10 min = temp<min?temp:min; 11 max = temp>max?temp:max; 12 sum += temp; 13 } 14 printf("%d\n%d\n%d\n",max,min,sum); 15 return 0; 16 }
说明: 由于存在只有一个数(如:输入为 1 -8096)的情况,所以min,max的初值就不能像sum一样赋为0,
之前见到有人把他们赋为很小的一个负数(如:-100000),个人不是很喜欢这种方式。
所以,就把第一个输入和之后的输入分开了,如上。看起来有点傻。。目前还想不到咋才能改的好看点。。想到了再回来改吧。。