计算n的乘阶
#define _CRT_SECURE_NO_WARNINGS 1
#include <stdio.h>
int main()
{
int a = 0;
int n = 0;
int c = 1;//必须是1,因为0乘任何数都是0
scanf("%d",&n);
for (a = 1; a <= n; a++)//a也必须从1开始
{
c = c*a ;
}
printf("%d", c);//printf必须在外面,不能在循环内
return 0;
}
计算1到10的和
#define _CRT_SECURE_NO_WARNINGS 1
#include <stdio.h>
int main()
{
int a = 0;
int sum = 0;
for (a = 1; a <= 10; a++)
{
sum = sum+a ;
}
printf("%d", sum);//55
return 0;
}
计算1!+2!+3!.....+10!
#define _CRT_SECURE_NO_WARNINGS 1
#include <stdio.h>
int main()
{
int a = 0;
int c = 1;//必须是1,因为0乘任何数都是0
int sum = 0;
for (a = 1; a <= 10; a++)//a也必须从1开始
{
c = c * a;//sum*=a
sum = sum+c;//sum+=c
}
printf("%d", sum);//运行结果4037913
return 0;
另一种嵌套函数的写法(j=3为了方便验算)
#define _CRT_SECURE_NO_WARNINGS 1
#include <stdio.h>
int main()
{
int a = 0;
int c = 1;
int j = 0;
int sum = 0;
for (j = 1; j <= 3; j++)
{
int c = 1;//这里固定c的值,否则第三次(j=3时) 结果就会变成 2 * 3!
for (a = 1; a <= j; a++)
{
c *= a;
}
sum += c;
}
printf("%d\n",sum);
return 0;
}
用二分查找法查找有序数组中的数字
#define _CRT_SECURE_NO_WARNINGS 1
#include <stdio.h>
int main()
{
int a = 0;
scanf("%d", &a);
int arr[] = { 1, 2, 3, 4, 5, 6, 7, 8, 9, 10 };
int sz = sizeof(arr) / sizeof(arr[0]);
int left = 0;
int right = sz - 1;
while (right >= left)
{
int mid = (right + left) / 2;
if (arr[mid] < a)//单mid不行,必须是arr[mid]
{
left = mid + 1;
}
else if (arr[mid] > a)
{
right = mid - 1;
}
else
{
printf("找到了");
return 0;
}
}
if (left > right)//不要加分号,不然结果会一直是"找不到了"
{
printf("找不到了");
}
return 0;
}
做一个文字两边不断前进的效果
编写代码实现,模拟用户登录情景,并且只能登录三次。(只允许输入三次密码,如果密码正确则提示登录成,如果三次均输入错误,则退出程序。)
#define _CRT_SECURE_NO_WARNINGS 1
#include <stdio.h>
#include <string.h>
int main()
{
char password[20] = { 0 };
int a = 0;
for (a = 1; a < 3 ||a==3; a++)
{
printf("请输入密码:");
scanf("%s", password);//scanf不能在外面,如果在外面"请输入密码:"就会变成输入后显示,这里没有&符号
if (strcmp(password, "123456") == 0)//strcmp验证字符串是否相等 "==0"代表相等
{
printf("验证成功\n");
break;
}
else
{
printf("密码错误!\n");
}
}
if (a >3)
printf("机会已用完,无法输入");
return 0;
}