#includeint main() { int a = 0; int b = 0; int c = 1; scanf("%d", &a); for (b = 1; b <= a; b++) { c *= b; } printf("%dn", c); return 0; }
2. 计算 1!+2!+3!+……+10!
#includeint main() { int i = 0; int j = 0; int n = 0; int b = 1; int c = 0; scanf("%d", &n); for (i = 1; i <= n; i++) { b = 1; for (j = 1; j <= i; j++) { b *= j; } c += b; } printf("%d", c); return 0; }
3. 在一个有序数组中查找具体的某个数字n
#includeint main() { char arr[10] = { 1,2,3,4,5,6,7,8,9,10 }; int sz = sizeof(arr) / sizeof(arr[0]); int left = 0; int right = sz - 1; int i = 8;//比如找数组中的元素8的具体下标 while (left <= right) { int mid = (left + right) / 2; if (arr[mid] < i) { left = mid + 1; } else if (arr[mid] > i) { right = mid - 1; } else printf("找到了,下标是%dn",mid); } if (left > right) { printf("该元素不在数组中n"); } return 0; }
其中while(left<=right)括号中的left=right情况,可以思考当寻找元素10时,即可成立。
4.编写代码,演示多个字符从两端移动,向中间汇聚
#include#include int main() { char arr[] = "hello world"; char arr1[] = "###########"; int left = 0; int sz = sizeof(arr) / sizeof(arr[0]); int right = sz - 1; while (left <= right) { Sleep(1000);//睡眠函数-单位是毫秒,使打印速度慢下来,能看得见过程 arr1[left] = arr[left]; arr1[right] = arr[right]; left++; right--; printf("%sn", arr1); system("cls");//执行系统命令的 } return 0; }
'cls'是清屏命令,打印一次,清屏一次
5. 编写代码实现,模拟用户登录情景,并且只能登录三次。(只允许输入三次密码,如果密码正确则提示登录成功,如果三次均输入错误,则退出程序
#include#include int main() { int i = 0; char password[20] = ""; for (i = 0; i < 3; i++) { printf("请输入密码n"); scanf("%s", password); if (strcmp(password, "12138") == 0) { printf("密码正确,登入成功n"); break; } else { printf("密码错误n"); } } if (3 == i) { printf("3次输入均错误,退出程序n"); } return 0; }
if (strcmp(password, "12138") == 0)这句意思为输入的password是否为12138
比较2个字符串是否相等,不能使用==,而应该使用strcmp(引用头文件#include
6.猜数字游戏
void game()
{
int guess = 0;
int r = rand() % 100 + 1;//0~99-->1~100
printf("猜数字n");
while (1)
{
scanf("%d", &guess);
if (guess < r)
{
printf("猜小了n");
}
else if (guess > r)
{
printf("猜大了n");
}
else
{
printf("猜对了n");
break;
}
}
}
void menu()
{
printf("###############n");
printf("###############n");
printf("### 1.PLAY ####n");
printf("### 0.EXIT ####n");
printf("###############n");
printf("###############n");
}
#include
int main()
{
int input = 0;
srand((unsigned int)time(NULL));//时间-设置随机数的生成器(时间戳)
do
{
menu();
printf("请选择:>n");
scanf("%d", &input);
switch (input)
{
case 1:
printf("开始游戏n");
game();
break;
case 2:
printf("退出游戏n");
break;
default:
printf("选择错误n");
break;
}
} while (input);
return 0;
}
C语言中生成的随机数的方式是rand函数 ,引用的头文件#include
随机数范围0~RAND_MAX 0x7fff(0~32767)
int r = rand()%100+1 0~99-->1~100,所以这句话的意思:电脑随机生成一个1~100之间的数字
rand函数要放在循环外面,不然循环一次,随机数就要变一次
srand((unsigned int)time(NULL)) 时间-设置随机数的生成器(时间戳)



