分支与循环小练习
Posted Suk_god
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了分支与循环小练习相关的知识,希望对你有一定的参考价值。
针对于循环与分支的一些练习
计算n的阶乘
此题相对比较简单,理解阶乘的概念,联想1–100的求和,利用循环实现即可,具体见代码
#define _CRT_SECURE_NO_WARNINGS 1
#include <stdio.h>
#include <windows.h>
int main()
{
int num = 0;
int i = 0;
long fac = 1;
printf("Please Enter Your Number#");
scanf("%d",&num);
if (num < 0)
{
printf("Enter Error!\\n");
}
else if (num == 0)
{
printf("%d\\n", 1);
}
else
{
for (i = num; i>1; i--)
{
fac *= i;
}
printf("%d\\n", fac);
}
system("pause");
return 0;
}
计算1–10的阶乘和
直接上代码
#define _CRT_SECURE_NO_WARNINGS 1
#include <stdio.h>
#include <windows.h>
int main()
{
int i = 0;
int sum = 0;
long fac = 1;
for (i = 1; i <= 10; i++)
{
fac *= i;
sum += fac;
}
printf("1!+2!+...+10!=%d\\n", sum);
system("pause");
return 0;
}
结果:
在一个有序数组中查找某个数
要求:找到了就打印数字所在的下标,找不到则输出:找不到。
分析题干,提取关键信息,
数组、有序---->折半查找
详解如下:
#define _CRT_SECURE_NO_WARNINGS 1
#include<stdio.h>
#include<windows.h>
int SearchIndex(int arr[], int len, int number)
{
int start = 0;
int end = len - 1;
while (start <= end)
{
int mid = (start&end) | ((start^end) >> 1);
if (number < arr[mid])
{
end = mid - 1;
}
else if (number>arr[mid])
{
start = mid + 1;
}
else
{
return mid;
}
}
return -1;
}
int main()
{
int arr[] = { 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 12, 13, 14, 134, 156 };
int len = sizeof(arr) / sizeof(arr[0]);
int number = 0;
scanf("%d", &number);
//二分查找函数
int result = SearchIndex(arr, len, number);
if (result == -1)
{
printf("找不到");
}
else
{
printf("%d", result);
}
printf("\\n");
system("pause");
return 0;
}
结果:
编写代码,演示多个字符从两端移动,向中间汇聚
#define _CRT_SECURE_NO_WARNINGS 1
#include <stdio.h>
#include <windows.h>
int main()
{
char arr1[] = "Where there is a will there is a way!";
char arr2[] = "*************************************";
int left = 0;
int right = strlen(arr1) - 1;
printf("%s\\n",arr2);
while (left<=right)
{
Sleep(1000);
arr2[left] = arr1[left];
arr2[right] = arr1[right];
left++;
right--;
printf("%s\\n", arr2);
//此输出语句可以更改为
//pritnf("%s\\r",arr2);
//这样写替换的效果更明显,读者可自行尝试
}
printf("\\n");
system("pause");
return 0;
}
以上是关于分支与循环小练习的主要内容,如果未能解决你的问题,请参考以下文章
趁着课余时间学点Python真的花点课余时间就能理解的分支控制语句
Python从入门到精通,100天就够了!——分支结构与循环结构