注意:编译器使用为VS2019,由于编译器的缘故,以下代码的输入函数均写为scanf_s();
- 计算 n的阶乘。
代码:
#include<stdio.h>
int main(void) {
int n = 0;
int i = 0;
int result = 1;
printf("请输入整数n:");
scanf_s("%d",&n);
for (i = 0; i < n; i++) {
result *= (i + 1);
}
printf("n!的值为%d。\n",result);
return 0;
}
结果:
- 计算 1!+2!+3!+……+10!
代码:
#include<stdio.h>
int main(void) {
int n = 10;
int i = 0;
int j = 0;
int result_1 = 1;
int result_2 = 0;
for (i = 0; i < n; i++) {
for (result_1 = 1,j = 0; j < i+1; j++) {
result_1 *= (j + 1);
}
result_2 += result_1;
}
printf(" 1!+ 2!+ 3!+ …… + 10!的结果为:%d\n",result_2);
return 0;
}
或者:(该方法较为简便,代码效率更高)
#include<stdio.h>
int main(void) {
int n = 10;
int i = 0;
int j = 0;
int result_1 = 1;
int result_2 = 0;
for (i = 0; i < n; i++) {
result_1 *= (i+1);
result_2 += result_1;
}
printf(" 1!+ 2!+ 3!+ …… + 10!的结果为:%d\n",result_2);
return 0;
}
结果:
- 在一个有序数组中查找具体的某个数字n。(讲解二分查找)
代码:
#include<stdio.h>
int main(void) {
int arr[] = {1,2,3,4,5,6,7,8,9};
int k = 7;
int left = 0;
int right = sizeof(arr) / sizeof(arr[0]) - 1;
int mid = (left + right) / 2;
while (left <= right) {
if (arr[mid] == k) {
printf("%d的下标为%d。", k, mid);
break;
}
else if (arr[mid] > k) {
right = mid - 1;
mid = (left + right) / 2;
}
else if (arr[mid] < k) {
left = mid + 1;
mid = (left + right) / 2;
}
}
if (left > right) {
printf("%d不在数组中。",k);
}
return 0;
}
结果:
- 编写代码,演示多个字符从两端移动,向中间汇聚。
代码:
#include<stdio.h>
#include<string.h>
int main(void) {
char arr[] = "Welcome to China!!!!!!";
int left = 0;
int right = strlen(arr) - 1;
int i;
while (left <= right) {
for (i = 0; i < strlen(arr); i++) {
if (i <= left || i >= right)
printf("%c", arr[i]);
else
printf("#");
}
printf("\n");
left++;
right--;
}
return 0;
}
结果:
- 编写代码实现,模拟用户登录情景,并且只能登录三次。(只允许输入三次密码,如果密码正确则 提示登录成,如果三次均输入错误,则退出程序。
代码:
#include<stdio.h>
#include<string.h>
int main(void) {
char arr[] = "abc";
char password[20]="0";
int i = 0;
for (i = 0; i < 3; i++) {
printf("请输入密码:");
scanf_s("%s", password,10);
if (strcmp(password, arr) == 0) {
printf("确认密码成功!\n");
break;
}
else {
printf("确认密码失败,请重试!\n");
}
}
if (3 == i) {
printf("3次确认密码均失败,请稍后再试!\n");
}
return 0;
}
结果:
感谢大家的观看,如果有误,欢迎指出~~