一、计算n的阶乘
#define _CRT_SECURE_NO_WARNINGS
#include<stdio.h>
#include<stdlib.h>
int main() {
int a = 0;
int i = 0;
int factor = 1;
printf("求几的阶乘\n");
scanf("%d", &a);
for (i = 1; i <= a; i++) {
factor = factor * i;
}
printf("%d\n", factor);
system("pause");
return 0;
}
二、计算1!+2!+3!+…+10!
代码如下:
#include<stdio.h>
#include<stdlib.h>
int main() {
int i = 0;
int j = 0;
int num = 0;
for (j = 1; j <= 10; j++) {
int factor = 1;
for (i = 1; i <=j; i++) {
factor = factor * i;
}
num = num + factor;
}
printf("%d\n", num);
system("pause");
return 0;
}
注意这里的factor一定要写在第一个循环里边,因为每次循环都要将factor初始为1,阶乘都是从一开始乘,我在写时就犯了这个错误,以至于一直运行出来答案错误.
三、在一个有序数组中查找具体的某个数字n
int main()
{
int arr[] = {3,4,5,6,7,8,9};
int num = 0;
printf("请输入要查找的数。\n");
scanf("%d", &num);
int left = 0;
int right = 6;
if (num<arr[0] || num>arr[6]) {
printf("找不到!\n");
}
while (left<right) {
int mid = (left + right) / 2;
if (num > arr[mid]) {
left = mid + 1;
}
else if (num < arr[mid]) {
right = mid - 1;
}
else {
printf("该数的下标为%d\n",mid);
break;
}
}
system("pause");
return 0;
}
这种方式是二分查找的方法,前提必须是有序数组.这个代码很重要.
四、演示多个字符从两端移动,向中间汇聚
#include<stdio.h>
#include<stdlib.h>
#include<string.h>
#include<windows.h>//Sleep所要包含的头文件
int main() {
char arr1[] = "welcome to bit";
char arr2[] = "##############";
int left = 0;
int right = strlen(arr1) - 1;
printf("%s\n", arr2);
while (left <= right) {
Sleep(1000);//睡觉,让程序等一等,过一会在执行,使速度慢下来,观察的更清楚
system("cls");//清空屏幕,营造一种掀开帘子的感觉
arr2[left] = arr1[left];
arr2[right] = arr1[right];
left++;
right--;
printf("%s\n", arr2);
}
system("pause");
return 0;
}
五、模拟用户登录情景
条件为:只能登陆三次(只允许输入三次密码,如果密码正确则提示登录成功,如果三次均输入错误,则退出程序)
代码如下:
#define _CRT_SECURE_NO_WARNINGS
#include<stdio.h>
#include<stdlib.h>
#include<string.h>
int main() {
char psw[] = "";
int i = 0;
for (i = 0; i < 3; i++) {
printf("请输入密码\n");
scanf("%s", &psw);
if (strcmp(psw, "12345") == 0)//c语言中,不能使用==比较两个字符串内容相等,()里的内容用于判断是否相等
break;
}
if (i == 3) {
printf("exit\n");
}
else {
printf("log in\n");
}
system("pause");
return 0;
}