n的阶乘
迭代法:
#define _CRT_SECURE_NO_WARNINGS
#include <stdio.h>
int main()
{
int a = 0;
printf("请输入一个数:>");
scanf("%d", &a);
int i = 0;
int ret = 1;
for (i = 1; i <= a; i++)
{
ret *= i;
}
printf("%d的阶乘为%d", a, ret);
return 0;
}
求1! + 2!+…10!
int main()
{
int a = 10;
int i = 0;
int ret = 1;
int sum = 0;
for (i = 1; i <= a; i++)
{
ret *= i;
sum += ret;
}
printf("1!+2!+......+10!为%d", sum);
return 0;
}
字符从两端移动向中间汇聚的效果
#include <Windows.h>
int main()
{
char arr1[] = "welcome to bit!!!!";
char arr2[] = "xxxxxxxxxxxxxxxxxx";
int sz = sizeof(arr1) / sizeof(arr1[0]);
int left = 0;
int right = sz - 1;
while (left <= right)
{
arr2[left] = arr1[left];
arr2[right] = arr1[right];
left++;
right--;
Sleep(1000);//放慢输出速度
printf("%s", arr2);
system("cls");//每次输出完后都清空命令行
}
printf("%s", arr2);
return 0;
}
模拟用户登录
只能登录三次,只允许输入三次密码,正确则提示登录成功;三次均输入错误,则退出程序.
#include <stdio.h>
#inlcude <string.h>
int main()
{
char passwords[20] = { 0 };
int i = 0;
while (i < 3)
{
printf("请输入密码:>");
scanf("%s", passwords);
if (strcmp(passwords, "bitbit") == 0)//字符串比较不能用==,这个比较的只是首字符而已
{
printf("密码正确\n");
break;
}
else
{
printf("密码错误,请重新输入\n");
}
i++;
}
if (i == 3)
{
printf("密码输入有误,退出程序");
}
return 0;
}