#include <stdio.h>int main() { char username[20], password[20]; int age; printf("请输入用户名:"); scanf("%s", username); printf("请输入密码:"); scanf("%s", password); if (strcmp(username, "a") == 0 && strcmp(password, "") == 0) { printf("密码正确\n"); printf("请输入年龄:"); scanf("%d", &age); if (age >= 18) { printf("可以查看\n"); } else if (age < 10) { printf("不允许查看\n"); } else { char choice; printf("是否确定要查看?(y/n)\n"); scanf(" %c", &choice); if (choice == 'y' || choice == 'Y') { printf("可以查看\n"); } else { printf("不可以查看\n"); } } } else if (strcmp(username, "a") != 0) { printf("用户不存在\n"); } else { printf("密码错误\n"); } return 0;}
时间: 2024-01-24 07:02:46 浏览: 75
以下是精简后的代码:
```c
#include <stdio.h>
#include <string.h>
int main() {
char username[20], password[20];
int age;
printf("请输入用户名:");
scanf("%s", username);
printf("请输入密码:");
scanf("%s", password);
if (strcmp(username, "a") != 0) {
printf("用户不存在\n");
return 0;
}
if (strcmp(password, "") != 0) {
printf("密码错误\n");
return 0;
}
printf("密码正确\n");
printf("请输入年龄:");
scanf("%d", &age);
if (age < 10) {
printf("不允许查看\n");
} else if (age >= 18) {
printf("可以查看\n");
} else {
char choice;
printf("是否确定要查看?(y/n)\n");
scanf(" %c", &choice);
if (choice == 'y' || choice == 'Y') {
printf("可以查看\n");
} else {
printf("不可以查看\n");
}
}
return 0;
}
```
主要的精简点是:
1. 将密码和用户名的错误判断提前,可以减少嵌套层数;
2. 将年龄的判断顺序调整,可以减少嵌套层数;
3. 将年龄大于等于18岁和小于10岁的情况分开判断,可以减少嵌套层数。
阅读全文