栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > C/C++/C#

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

C/C++/C# 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

适合初学者的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");//每一行打印结束进行换行
	}
}

这是打印出来的效果

 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("%dn", 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("%dn", 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 - %dn",len1,len);
            }
            
        }
        else if (b < ret)
        {
            len1 = b;//当玩家猜小的时候,将玩家输入的猜小的的数值  作为游戏的最小值,并存到len1里
            if (a != 5)
            {
                printf("猜小了,范围是%d - %dn", len1, len);
            }
            
        }
        else
        {
            printf("猜对了,数字是:%dn", b);
        }

    }
    printf("答案是:%dn", 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;
}

 

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

 

 

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/832385.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号