适合初学者的5道循环题目

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");//每一行打印结束进行换行
	}
}

这是打印出来的效果适合初学者的5道循环题目_第1张图片

 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");
	}
}

适合初学者的5道循环题目_第2张图片

 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;
}

打印出来的效果如下:80d1e02c7c7a42239bc59404a65a323c.png

 除此之外我们还有更简单的方法。

比如:除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;
}

适合初学者的5道循环题目_第3张图片

 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;
}

适合初学者的5道循环题目_第4张图片

 如果是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道循环题目_第5张图片

 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;
}

 

希望我的文章可以对你有帮助,期待老铁们的三连哦。

 

 

你可能感兴趣的:(c语言)