关于循环的练习题

计算n的乘阶

#define _CRT_SECURE_NO_WARNINGS 1
#include <stdio.h>
int main()
{
	int a = 0;
	int n = 0;
	int c = 1;//必须是1,因为0乘任何数都是0 
		scanf("%d",&n);
		for (a = 1; a <= n; a++)//a也必须从1开始
		{
			c = c*a ;
		
		}
		printf("%d", c);//printf必须在外面,不能在循环内
			return 0;
	}

 

计算1到10的和

#define _CRT_SECURE_NO_WARNINGS 1

#include <stdio.h> 

int main()
{
	int a = 0;
	int sum = 0;
	for (a = 1; a <= 10; a++)
	{
		sum = sum+a ;

	}
	printf("%d", sum);//55


	return 0;

}

计算1!+2!+3!.....+10!

#define _CRT_SECURE_NO_WARNINGS 1
#include <stdio.h> 
int main()
{
	int a = 0;
	int c = 1;//必须是1,因为0乘任何数都是0 
	int sum = 0;
	for (a = 1; a <= 10; a++)//a也必须从1开始
	{

		c = c * a;//sum*=a
		sum = sum+c;//sum+=c

	}
	printf("%d", sum);//运行结果4037913
			return 0;

另一种嵌套函数的写法(j=3为了方便验算)

#define _CRT_SECURE_NO_WARNINGS 1
#include <stdio.h> 
int main()
{
	int a = 0;
	int c = 1; 
	int j = 0;
	int sum = 0;
	for (j = 1; j <= 3; j++)
	{   
		 int c = 1;//这里固定c的值,否则第三次(j=3时) 结果就会变成 2 * 3!
		for (a = 1; a <= j; a++)
		{
			c *= a;
		}
		sum += c;
	}
	printf("%d\n",sum);
			return 0;
	}

用二分查找法查找有序数组中的数字

#define _CRT_SECURE_NO_WARNINGS 1
#include <stdio.h>

int main()
{

    int a = 0;
    scanf("%d", &a);
    int arr[] = { 1, 2, 3, 4, 5, 6, 7, 8, 9, 10 };

    int sz = sizeof(arr) / sizeof(arr[0]);
    int left = 0;
    int right = sz - 1;

    while (right >= left)
    {
        int mid = (right + left) / 2;
        if (arr[mid] < a)//单mid不行,必须是arr[mid]
        {
            left = mid + 1;
        }
        else if (arr[mid] > a)
        {
            right = mid - 1;
        }
        else
        {
            printf("找到了");
            return 0;
        }
    }
    if (left > right)//不要加分号,不然结果会一直是"找不到了"
    {
        printf("找不到了");
    }
    return 0;
}



做一个文字两边不断前进的效果

编写代码实现,模拟用户登录情景,并且只能登录三次。(只允许输入三次密码,如果密码正确则提示登录成,如果三次均输入错误,则退出程序。)

#define _CRT_SECURE_NO_WARNINGS 1
#include <stdio.h>
#include <string.h>

int main()
{
    char password[20] = { 0 };
  

    int a = 0;
   
    for (a = 1; a < 3 ||a==3; a++)
    {


        printf("请输入密码:");
        scanf("%s", password);//scanf不能在外面,如果在外面"请输入密码:"就会变成输入后显示,这里没有&符号
       
        if (strcmp(password, "123456") == 0)//strcmp验证字符串是否相等 "==0"代表相等
        {
            printf("验证成功\n");
            break;
        }
        else
        {
            printf("密码错误!\n");
        }
    
    }

if (a >3)
    
    printf("机会已用完,无法输入");
    

    return 0;
}

  • 7
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值