0
点赞
收藏
分享

微信扫一扫

[C语言]课堂小练习

小磊z 2022-01-09 阅读 133

第一个练习是计算阶乘的:

int main()
{
	int i = 0;
	int ret = 1;
	int n = 0;
	while (1)
	{
		scanf("%d", &n);
		if (0 == n)
		{
			printf("退出程序\n");
			break;
		}
		for (i = 1,ret = 1; i <= n; i++)
		{
			ret *= i;
		}
		printf("%d的阶乘是:%d\n", n, ret);
	}
	return 0;
}

第二个练习是阶乘和:

int main()
{
	int i = 0;
	int n = 0;
	int ret = 1;
	int sum = 0;
	while (1)
	{
		scanf("%d", &n);
		if (0 == n)
		{
			printf("退出程序\n");
			break;
		}
		ret = 1; sum = 0;
		for (i = 1; i <= n; i++)
		{
			ret *= i;
			sum += ret;
		}
		printf("%d以内的阶乘和:%d\n", n, sum);
	}
	return 0;
}

第三个练习是有序数组中查找数值,运用了折半查找,也叫二分查找

int main()
{
	int arr[10] = { 1,2,3,4,5,6,7,8,9,10 };
	int k = 7;
	int sz = sizeof(arr) / sizeof(arr[0]); //求数组元素个数
	int left = 0;     //范围左下标
	int right = sz - 1;  //范围右下标
	int mid = 0;
	while (left <= right)
	{
		mid = (left + right) / 2;   //从数组中间找起
		if (arr[mid] > k)
			right = mid - 1;            
		else if (arr[mid] < k)
			left = mid + 1;     //缩小查找范围
		else
		{
			printf("找到了,下标是:%d\n", mid);
			break;
		}
	}
	if (left > right)
		printf("找不到了\n");    //当范围左下标大于右下标,则表示已经没有要查找的元素了
	return 0;
}

第四个练习,则是一个从两端往中间一一显示出来的代码;

int main()
{
	char arr1[] = "Nice to meet you!";
	char arr2[] = "#################";
	int left = 0;
	int right = strlen(arr1) - 1;
	while (left <= right)
	{
		arr2[left] = arr1[left];
		arr2[right] = arr1[right];
		printf("%s\n", arr2);
		Sleep(1000);
		system("cls");
		left++;
		right--;
	}
	printf("%s\n", arr2);
	return 0;
}

第五个,模拟限制输入密码次数的代码:

int main()
{
	int i = 0;
	char password[20] = { 0 };
	for(i = 0;i <3;i++)
	{
		printf("请输入密码:>");
		scanf("%s", password);
		if (strcmp(password, "123456") == 0)
		{
			printf("登录成功\n");
			break;
		}
		else
			printf("输入错误,请重新输入\n");
	}
	if (i == 3)
		printf("三次均输入错误,退出程序\n");
	return 0;
}

这就是本人所学的几个练习,请多多指教;

举报

相关推荐

0 条评论