1.九九乘法表
双循环即可完成,第一层循环打印行数,第二层循环打印列数,最后依靠循环变量打印出乘法表。
#include
int main()
{
int i, j;
for (i = 1; i <= 9; i++)//行数
{
for (j = 1; j <= i; j++)列数
{
printf("%d*%d = %-2d ", i, j, i * j);//打印乘法口诀
}
printf("\n");//每一行打印结束进行换行
}
}
1.1 九九乘法表还有进阶版本,也就是可以打印任意行的乘法表实现如下:
实现效果大同小异,只是可以自由控制打印的行数
#include
int main()
{
int i, j, n;
scanf("%d", &n);
for (i = 1; i <= n; i++)
{
for (j = 1; j <= i; j++)
{
printf("%2d*%d = %-3d ", i, j, i * j);
}
printf("\n");
}
}
2.打印素数
我们最常见的判断素数的方法是:除1和它本身之外的数字无法进行整除
实现如下:
#include
int main()
{
int i, j, n;
scanf("%d", &n);
if (n == 1)//1不是素数
{
printf("不是素数\n");
}
for (i = 2; i < n; i++)//判断从2到它本身是否可以被整除
{
if (n % i == 0)
{
printf("不是素数\n");
break;
}
}
if (n == i)//都不可以整除,是素数
{
printf("是素数\n");
}
return 0;
}
接下来我们打印100~200之间的素数,代码如下:
#include
int main()
{
int i, j;
for (i = 100; i <= 200; i++)
{
for (j = 2; j < i; j++)
{
if (i % j == 0)
{
break;
}
}
if (j == i)
{
printf("%d ", i);
}
}
return 0;
}
除此之外我们还有更简单的方法。
比如:除2之外的数字一定不为素数;从2到sqrt(n)中没有可以整除的数则是素数。
#include
#include
int main()
{
int i, j, k = 0;
for (i = 101; i <= 200; i+=2)
{
for (j = 2; j <= sqrt(i); j++)
{
k = 0;
if (i % j == 0)
{
k = 1;
break;
}
}
if (k == 0)
{
printf("%d ", i);
}
}
return 0;
}
打印出来的结果也是一样的。
3.打印闰年
可以被4整除不能被100整除并且可以被400整除的年份为闰年。
下面是代码的实现。
#include
int main()
{
int i, j;
for (i = 1000; i <= 2000; i++)//打印1000到2000之间的闰年
{
if ((i % 4 == 0 && i % 100 != 0) || i % 400 == 0)//判断
{
printf("%d ", i);
}
}
return 0;
}
4.打印n的阶乘以及n个阶乘的累加
#include
int main()
{
int i, n, m = 1;//m要初始化为1
scanf("%d", &n);
for (i = 1; i <= n; i++)
{
m *= i;//让m累乘i, i = 1,2,3,4,5
}
printf("%d\n", m);
return 0;
}
如果是n个阶乘的累加也很简单 思路如下:
n = 5,m = 1!+2!+3!+4!+5!;
将每一次循环进行的累乘加在一起即可实现,如下:
#include
int main()
{
int i, n, m = 1, k = 0;
scanf("%d", &n);
for (i = 1; i <= n; i++)
{
m *= i;//累乘
k += m;//累加
}
printf("%d\n", k);
return 0;
}
5.猜数字游戏
猜数字游戏的具体实现在我以前的文章里,这里只给出代码
#define _CRT_SECURE_NO_WARNINGS
#include
#include
#include
#include
void menu()
{
printf("****************************\n");
printf("**** 1.Play 0.exit ****\n");
printf("****** 1.1.1版本 ******\n");
printf("****************************\n");
}
void game()
{
int a = 0,len = 100,len1 = 0;//len为大值初始为100,len1为小值初始为0
printf("游戏开始\n");
int ret = 0;
ret = rand() % 100 + 1;
//printf("(Plug-in --> The number is %d)\n",ret);//这是外挂
for (a = 1; a <= 5; a++)
{
int b = 0,count = 0;
printf("请输入你猜的数字:");
scanf("%d", &b);
if (b > ret)
{
len = b;//当玩家猜大的时候,将玩家输入的猜大的的数值 作为游戏的最大值,并存到len里
if (a != 5)
{
printf("猜大了,范围是%d - %d\n",len1,len);
}
}
else if (b < ret)
{
len1 = b;//当玩家猜小的时候,将玩家输入的猜小的的数值 作为游戏的最小值,并存到len1里
if (a != 5)
{
printf("猜小了,范围是%d - %d\n", len1, len);
}
}
else
{
printf("猜对了,数字是:%d\n", b);
}
}
printf("答案是:%d\n", ret);
system("pause");
Sleep(1000);
system("cls");
}
int main()
{
srand((unsigned int)time(NULL));
int input = 0;
system("cls");
Sleep(1000);
do
{
menu();
printf("请开始游戏,输入1或0:(1/0)\n");
scanf("%d", &input);
switch (input)
{
case 1:
system("cls");
Sleep(1000);
game();
break;
case 0:
printf("游戏结束\n");
break;
default:
system("cls");
printf("输入错误,请在输入一次\n");
break;
}
Sleep(1000);
} while (input);
return 0;
}
希望我的文章可以对你有帮助,期待老铁们的三连哦。