目录
一、打印三的倍数
二、从大到小输出
三、三角形判断
四、数9的个数
五、猜数字游戏
六、乘法口诀表
七、求最大值
八、分数求和
九、打印素数
十、打印闰年
十一、最大公约数
十二、打印空心正方形图案
十三、矩阵转置
十四、逆序输出
十五、输入10个整数,求平均值
十六、交换数组
一、打印三的倍数
写一个代码打印1-100之间所有3的倍数的数字
int main()
{int i = 0;for (i=1; i <=100; i++){if (i % 3 == 0){printf("%d\t", i);}}
}
二、从大到小输出
写代码将三个整数数按从大到小输出。
例如:
输入:2 3 1
输出:3 2 1
int main()
{int a, b, c;int temp = 0;scanf("%d %d %d", &a, &b, &c);if (a<b){temp = a;a = b;b = temp;}if (a<c){temp = a;a = c;c = temp;}if (b<c){temp = b;b = c;c = temp;}printf("%d %d %d", a, b, c);}
三、三角形判断
int main(){int a=1, b=1, c=1;while (scanf("%d %d %d", &a, &b, &c) != EOF){if (a + b > c && a + c > b && b + c > a){if (a == b && b == c){printf("Equilateral triangle!\n");}else if (a == b || b == c || a == c){printf("Isosceles triangle!\n");}else{printf("Ordinary triangle!\n");}}else{printf("Not a triangle!\n");}}return 0;}
四、数9的个数
编写程序数一下 1到 100 的所有整数中出现多少个数字9
int main()
{int i = 0;int count = 0;for(i=1; i<=100; i++){if(i%10==9)count++;if(i/10==9)count++;}printf("%d\n", count);return 0;
}
五、猜数字游戏
//猜数字游戏
//1、使用do while 循环 打印菜单
//2、switch语句判断是否玩游戏
//3、用函数来封装游戏逻辑#include <stdio.h>
#include <time.h>
#include <stdlib.h>
void game()
{//1、生成随机数int r=rand()%100+1;//生成1-100的随机数int guess = 0;//2、猜数字while (1) {printf("请猜数字");scanf("%d", &guess);if (guess>r){printf("猜大了\n");}else if (guess<r){printf("猜小了\n");}else{printf("恭喜你,猜对了!!!\n");break;}}
}int main()
{int input = 0;srand((unsigned int)time(NULL));do{printf("***************\n");printf("****1.play*****\n");printf("****0.exit*****\n");printf("***************\n");printf("请选择:>");scanf("%d", &input);switch (input){case 1:game();break;case 0:printf("退出游戏\n");break;default:printf("选择错误,请重新选择\n");break;}} while (input);return 0;
}
六、乘法口诀表
在屏幕上输出9*9乘法口诀表
int main()
{int i = 0;int j = 0;for (i = 1; i <= 9; i++){for (j = 1; j <= i; j++){printf("%d*%d=%d\t", j, i, i*j);}printf("\n");}return 0;
}
七、求最大值
求10 个整数中最大值
//*设置一个值max假定他为最大值,把其他值与max比较,比max大就把这个大的值给max
int main()
{int i = 0;int arr[10] = { 12,45,32,56,18,2,89,33,20,65 };int max = 0;for (i = 0; i < 10; i++){if (max < arr[i]){max = arr[i];}}printf("%d", max);return 0;
}
八、分数求和
计算1/1-1/2+1/3-1/4+1/5 …… + 1/99 - 1/100 的值,打印出结果
//1、分母是1-100所以用for循环输出,分子不变
//2、因为是小数,所以分子要变成1.0,设置的sum为double类型
//3、设置一个flag变量为1;在每次加的时候去乘flag
int main()
{double sum = 0;int flag = 1;for (int i = 1; i <=100 ; i++){sum = sum + 1.0 / i *flag;flag = -flag;}printf("%lf", sum);
}
九、打印素数
写一个代码:打印100~200之间的素数
//怎么判断素数?
//产生2~i-1之间的数字,试除i
//1、输出100-200之间的数
//2、判断是否是素数
//3、*设置一个变量flag标记
int main()
{int i = 0;int count = 0;for (i = 100; i <=200; i++)//素数不可能是偶数,所以这里可以写成i=101,i<=200;i+=2{int flag = 1;//假设i是素数int j = 0;for (j=2;j <= i-1; j++)//j<=sqrt(i) 开平方 要包含库函数includ <math.h>{if (i%j==0) {flag = 0;//不是素数break;}//不能在后面写if或者之间else,因为只测试了一个数字还有后面很多数字}if (flag == 1){printf("%d\n", i);count++;}}printf("count=%d\n", count);
}
十、打印闰年
打印1000年到2000年之间的闰年
//打印1000-2000年之间的闰年
//能被4整除但不能被100整除,或者能被400整除的年份
int main() {int year = 0;for (year = 1000; year <= 2000; year++){if ((year % 4 == 0 && year % 100 != 0)||year % 400 == 0) {printf("%-5d",year);//%-5d的作用是空格}}
}
十一、最大公约数
给定两个数,求这两个数的最大公约数
例如:
输入:20 40
输出:20
//这里用到辗转相除法,设置两个数,a,b,用a%b,余数为c,
//在用b的值去%c,就是说把b的值给a ,把c的值给b,c为0的时候,最大公约数就是b
int main()
{int a = 80;int b = 50;int c = a%b;while (c != 0){a = b;b = c;c = a % b;}printf("%d", b);
}
十二、打印空心正方形图案
输入:4
输出:
* * * * * * * * * * * *
画图分析:我们可以把这个图案当成一个二维数组,在i = 0 或i= n-1,j= 0 或j= n-1的时候,打印*
int main()
{int n = 0;while(scanf("%d", &n) != EOF){int i = 0;int j = 0;for(i=0; i<n; i++){for(j=0; j<n; j++){if(i==0 || i==n-1)printf("* ");else if(j==0 || j==n-1)printf("* ");elseprintf(" ");}printf("\n");}}return 0;
}
十三、矩阵转置
例如:输入:2 3
1 2 3
4 5 6
输出:
1 4 2 5 3 6
画图分析:我们还是把他看成二维数组,画图之后,清晰发现,矩阵转置就是他们横纵坐标调换
//就是i,j下标互换
int main() {int m, n;//m行n列while (scanf("%d %d", &m, &n) != EOF) { // 注意 while 处理多个 caseint arr[10][10] = {0};for (int i = 0; i < m; i++) {for (int j = 0; j < n; j++) {scanf("%d", &arr[i][j]);}}for (int i = 0; i < n; i++) {for (int j = 0; j < m; j++) {printf("%d ", arr[j][i]);}printf("\n");}}return 0;
}
十四、逆序输出
输入10个整数,要求按输入时的逆序把这10个数打印出来。逆序输出,就是按照输入相反的顺序打印这10个数。
int main() {int arr[10] = { 0 };for (int i = 0; i < 10; i++) {scanf("%d", &arr[i]);}for (int i = 9; i >= 0; i--) {printf("%d ", arr[i]);}return 0;
}
十五、输入10个整数,求平均值
编写一个程序,从用户输入中读取10个整数并存储在一个数组中。然后,计算并输出这些整数的平均值。
int main() {int arr[10] = { 0 };int sum = 0;float avg = 0;for (int i = 0; i < 10; i++) {scanf("%d", &arr[i]);sum = sum + arr[i]; }avg = sum / 10.0;//注意数据类型printf("%f", avg);return 0;
}
十六、交换数组
将数组A中的内容和数组B中的内容进行交换。(数组一样大)
这个就和交换一个数一样,不过这是数组
int main()
{int tmp = 0;int arr1[6] = {12,26,54,31,9,8};int arr2[6] = { 33,29,45,18,65,30 };for (int i = 0; i < 6; i++){tmp = arr1[i];arr1[i] = arr2[i];arr2[i] = tmp;}for (int i = 0; i < 6; i++){printf("%d ", arr1[i]);}printf("\n");return 0;
}