/*
用户输入一个年份,判断这个年份是不是一个闰年。
*/#include<stdio.h>intmain(int argc,charconst*argv[]){int year =0;printf("请输入要判断的年份:");scanf("%d",&year);if(0== year %4&&0!= year %100||0== year %400){printf("%d是闰年\n", year );}else{printf("%d不是闰年\n", year );}return0;}
2. 判断是否为偶数
/*
用户输入一个整数,判断是不是偶数。
*/#include<stdio.h>intmain(int argc,charconst*argv[]){int num =0;printf("请输入一个整数:");scanf("%d",&num);if(0== num %2){printf("%d 是一个偶数 \n", num);}else{printf("%d 不是偶数\n", num);}return0;}
/*
15的阶乘
*/#include<stdio.h>intmain(int argc,charconst*argv[]){long sum =1;for(int i =1; i <=15; i++){
sum *= i;}printf("最终结果为:%ld\n", sum);return0;}
9. 展示 100 以内的所有偶数
/*
展示 100 以内所有的偶数
*/#include<stdio.h>intmain(int argc,charconst*argv[]){for(int i =0; i <=100; i +=2){printf("%d\n", i);}return0;}
10.展示 100 以内的所有奇数
/*
展示 100 以内所有的奇数
*/#include<stdio.h>intmain(int argc,charconst*argv[]){for(int i =1; i <100; i +=2){printf("%d\n", i);}return0;}
11. 展示符号 *
/*
展示出以下图形:
*****
*****
*****
*****
*****
*/#include<stdio.h>intmain(int argc,charconst*argv[]){int line =0;printf("请输入想要展示的行数:");scanf("%d",&line);for(int i =0; i < line; i++){for(int j =0; j < line; j++){printf("%c",'*');}printf("\n");}return0;}
12. 展示直角 *
/*
展示出以下图形:
*
**
***
****
*****
*/#include<stdio.h>intmain(int argc,charconst*argv[]){int line =0;printf("请输入想要展示的行数:");scanf("%d",&line);for(int i =0; i < line; i++){for(int j =0; j < i +1; j++){printf("%c",'*');}printf("\n");}return0;}
13. 展示三角 *
/*
展示出以下图形:
*
***
*****
*******
*********
*/#include<stdio.h>intmain(int argc,charconst*argv[]){int line =0;printf("请输入想要展示的行数:");scanf("%d",&line);for(int i =0; i < line; i++){for(int j =0; j < line - i; j++){printf("%c",' ');}for(int j =0; j <2* i +1; j++){printf("%c",'*');}printf("\n");}return0;}
14. 展示菱形 *
/*
展示出以下图形:
*
***
*****
*******
*********
*******
*****
***
*
*/#include<stdio.h>intmain(int argc,charconst*argv[]){int line =0;int judgment =1;while(judgment){printf("请输入想要展示的行数:");scanf("%d",&line);if(0== line %2){printf("输入行数有错误,行数必须为奇数,请重新输入!\n");continue;}// 上半部分内容// 控制上半部分的一共多少行,当前为:总行数 / 2 + 1 行for(int i =1; i <= line /2+1; i++){// 处理空格:上半部分总行数 - 当前第 i 行for(int j =1; j <= line /2+1- i; j++){printf("%c",' ');}// 处理星星个数 :当前第 i 行 * 2 - 1for(int j =1; j <= i *2-1; j++){printf("%c",'*');}printf("\n");}// 下半部分// 控制下半部分一共多少行,当前为:总行数 / 2 行for(int i =1; i <= line /2; i++){// 控制空格个数:对应当前第 i 行for(int j =1; j <= i; j++){printf("%c",' ');}// 控制星星个数:总行数 - 2 * 当前第 i 行for(int j =1; j <= line -2* i; j++){printf("%c",'*');}printf("\n");}
judgment =0;}return0;}
15. 展示菱形字母圈
/*
展示出以下图形:
A
ABA
ABCBA
ABCDCBA
ABCDEDCBA
ABCDCBA
ABCBA
ABA
A
*/#include<stdio.h>intmain(int argc,charconst*argv[]){int line =0;int judgment =1;while(judgment){printf("请输入想要展示的行数:");scanf("%d",&line);if(0== line %2){printf("输入行数有错误,行数必须为奇数,请重新输入!\n");continue;}// 上半部分内容// 控制上半部分的一共多少行,当前为:总行数 / 2 + 1 行for(int i =1; i <= line /2+1; i++){// 处理空格:上半部分总行数 - 当前第 i 行for(int j =1; j <= line /2+1- i; j++){printf("%c",' ');}for(char j ='A'; j <='A'+ i -1; j++){printf("%c", j);}for(char j ='A'+ i -2; j >='A'; j--){printf("%c", j);}printf("\n");}// 下半部分// 控制下半部分一共多少行,当前为:总行数 / 2 行for(int i =1; i <= line /2; i++){// 控制空格个数:对应当前第 i 行for(int j =1; j <= i; j++){printf("%c",' ');}for(int j ='A'; j <='A'+ line /2- i; j++){printf("%c", j);}for(int j ='A'+ line /2- i -1; j >='A'; j--){printf("%c", j);}printf("\n");}
judgment =0;}return0;}
16. 展示菱形圈圈
/*
展示出以下图形:
****#****
***#*#***
**#***#**
*#*****#*
#*******#
*#*****#*
**#***#**
***#*#***
****#****
提示: 绝对值
*/#include<stdio.h>intmain(int argc,charconst*argv[]){int line =9;int judgment =1;while(judgment){printf("请输入想要展示的行数:");scanf("%d",&line);if(0== line %2){printf("输入行数有错误,行数必须为奇数,请重新输入!\n");continue;}// 控制上半部分for(int i =1; i <= line /2+1; i++){for(int j =1; j <= line /2+1- i; j++){printf("%c",'*');}for(int j = line /2+2- i; j <= line /2+ i -1; j++){if(j == line /2+2- i){printf("%c",'#');}else{printf("%c",'*');}}for(int j = line /2+ i; j <= line; j++){if(j == line /2+ i){printf("%c",'#');}else{printf("%c",'*');}}printf("\n");}// 控制下半部分for(int i =1; i <= line /2; i++){for(int j =1; j <= i; j++){printf("%c",'*');}for(int j = i +1; j <= line - i -1; j++){if(j == i +1){printf("%c",'#');}else{printf("%c",'*');}}for(int j = line - i; j <= line; j++){if(j == line - i){printf("%c",'#');}else{printf("%c",'*');}}printf("\n");}
judgment =0;}return0;}
部分优化
1. 展示菱形使用 abs(绝对值)
#include<stdio.h>#include<stdlib.h>intmain(int argc,charconst*argv[]){int line =9;int judgment =1;while(judgment){printf("请输入想要展示的行数:");scanf("%d",&line);if(0== line %2){printf("输入行数有错误,行数必须为奇数,请重新输入!\n");continue;}for(int i =-line/2; i < line /2+1; i++){for(int j =-line /2; j < line /2+1; j++){if(abs(j)<= line /2-abs(i)){printf("%c",'*');}else{printf("%c",' ');}}printf("\n");}
judgment =0;}return0;}
2. 展示字母圈用abs
#include<stdio.h>#include<stdlib.h>intmain(int argc,charconst*argv[]){int line =9;int judgment =1;while(judgment){printf("请输入想要展示的行数:");scanf("%d",&line);if(0== line %2){printf("输入行数有错误,行数必须为奇数,请重新输入!\n");continue;}for(int i =-line /2; i < line /2+1; i++){for(int j =-line /2; j < line /2+1; j++){if(abs(j)<= line /2-abs(i)){for(int k =0; k <= line /2-abs(i); k++){if(abs(j)== line /2-abs(i)- k){printf("%c",'A'+ k);}}}else{printf("%c",'*');}}printf("\n");}
judgment =0;}return0;}
3. 展示菱形圈用abs
#include<stdio.h>#include<stdlib.h>intmain(int argc,charconst*argv[]){int line =9;int judgment =1;while(judgment){printf("请输入想要展示的行数:");scanf("%d",&line);if(0== line %2){printf("输入行数有错误,行数必须为奇数,请重新输入!\n");continue;}for(int i =-line/2; i < line /2+1; i++){for(int j =-line /2; j < line /2+1; j++){if(abs(j)== line /2-abs(i)){printf("%c",'#');}else{printf("%c",'*');}}printf("\n");}
judgment =0;}return0;}