1、求n!
#define _CRT_SECURE_NO_WARNINGS 1
#include <stdio.h>
#include <string.h>
//求n得阶乘
int main()
{
int n
int a=1;
int i;
scanf("%d", &n);
for ( i = 1; i <= n; i++) {
a *=i;
}
printf("%d\n",a);
return 0;
}
2、输入一个整数n,求1!+2!+3!+···+n!
#define _CRT_SECURE_NO_WARNINGS 1
#include <stdio.h>
#include <string.h>
//这个是自己写的比较麻烦
int main()
{
int n;
int i, j;
int a = 0;
int ret = 1;
int sum=0;
scanf("%d", &n);
for (i = 1; i <= n; i++) {
for (j = i; j <= i; j++) {
a = ret * i;
}
sum = sum + a;
ret = a;
a = 0;
}
printf("%d\n", sum);
return 0;
}
//这个是老师讲的,很简单
int main()
{
int i;
int sum = 0;
int ret = 1;
int n;
scanf("%d", &n);
for (i = 1; i <= n; i++) {
ret *= i;
sum += ret;
}
printf("%d\n", sum);
}
3、在一个有序数组中查找数字n,采用二分法查找方式
#define _CRT_SECURE_NO_WARNINGS 1
#include <stdio.h>
#include <string.h>
int main()
{
int array[] = { 1,2,3,4,5,6,7,8,9,10 };
int len = sizeof(array) / sizeof(array[0]); //数组中得元素个数
int left = 0;//数组左下标
int right = len - 1;//数组右下标
int n;
scanf("%d", &n);
while (left <= right) {
int mid = (left + right) / 2;
if (array[mid] < n) {
left = mid + 1;
}
else if (array[mid] > n) {
right = mid - 1;
}
else{
printf("找到了!!下标是:%d\n", mid);
break;
}
}
if (left > right) {
printf("没有在数组中找到该数字!");
}
return 0;
}
4、演示多个字符从两端移动,到中间汇聚。具体得执行结果,可以自己写一下去运行看一下,还蛮有意思的。
#define _CRT_SECURE_NO_WARNINGS 1
#include <stdio.h>
#include <string.h>
#include <windows.h>
#include <stdlib.h>
int main()
{
//char str;
//scanf("请输入一串字符串:%s", &str);
char strarr1[] = "welcome to BeJing!!!!";
char strarr2[] = "#####################";
int left = 0;
int right = strlen(strarr1)- 1;
while (left<=right) {
strarr2[left] = strarr1[left];
strarr2[right] = strarr1[right];
printf("%s\n", strarr2);
Sleep(1000); //需要包含 <windows.h>头文件
system("cls");//需要包含 <stdlib.h> 头文件
left++;
right--;
}
printf("%s\n", strarr1);
return 0;
}
5、模拟用户登录场景,输入密码,可错误三次,三次之后退出程序。
#define _CRT_SECURE_NO_WARNINGS 1
#include <stdio.h>
#include <string.h>
#include <windows.h>
#include <stdlib.h>
//模拟用户登录,密码正确则登录成功;密码错误三次,则退出程序
//strcmp()函数,需要包含<string.h> 头文件
int main()
{
int i;
int passwd[20] = {0};
for ( i = 0; i < 3; i++) {
printf("请输入您得密码:>");
scanf("%s", passwd);
if (strcmp(passwd,"123456") == 0) { //strcmp函数用来判断两字符串是否相同,相同返回0
printf("登陆成功!");
break;
}
else {
printf("密码错误!");
}
}
if (3 == i) {
printf("密码输入错误已到上限,退出程序。");
}
return 0;
}