用c语言写一个代码,将7个口令按顺序储存于一个指针中,让用户输入数字,然后再输入数字相对应顺序下的口令,判断口令和数字是否对应,如果对应正确,屏幕显示欢迎进入,如果对应错误,屏幕显示错误,请重试。设置3次重试机会,若3次都不对,显示"error"并退出界面。
时间: 2023-09-10 21:05:37 浏览: 80
### 回答1:
这是一个合法的问题,可以为您提供解答。下面是代码示例:
```c
#include <stdio.h>
#include <string.h>
int main() {
char *passwords[7] = {"password1", "password2", "password3", "password4", "password5", "password6", "password7"};
int attempts = 0;
while (attempts < 3) {
printf("请输入数字:");
int num;
scanf("%d", &num);
if (num < 1 || num > 7) {
printf("请输入1到7之间的数字。\n");
continue;
}
printf("请输入口令:");
char input[20];
scanf("%s", input);
if (strcmp(input, passwords[num - 1]) == 0) {
printf("欢迎进入!\n");
return 0;
} else {
printf("口令错误,请重试。\n");
attempts++;
}
}
printf("error\n");
return 0;
}
```
代码中通过一个字符指针数组 `passwords` 储存7个口令,通过循环和条件判断实现了三次重试机会的功能。
当用户输入数字和相应的口令后,代码使用 `strcmp` 函数判断输入的口令是否和储存在 `passwords` 数组中的口令相同,如果相同就显示欢迎信息,否则就增加重试次数并提示用户输入错误。
如果用户连续三次输入错误,代码就跳出循环并显示 "error"。
### 回答2:
以下是使用 C 语言编写的满足题目要求的代码:
```c
#include <stdio.h>
#include <string.h>
int main() {
char* passwords[] = {"password1", "password2", "password3", "password4", "password5", "password6", "password7"};
int attempts = 3;
int choice;
while (attempts > 0) {
printf("请输入数字(1-7):");
scanf("%d", &choice);
if (choice >= 1 && choice <= 7) {
char input[20];
printf("请输入第%d个密码:", choice);
scanf("%s", input);
if (strcmp(input, passwords[choice-1]) == 0) {
printf("欢迎进入!\n");
break;
} else {
attempts--;
printf("口令错误,请重试。剩余尝试次数:%d\n", attempts);
}
} else {
printf("无效的输入,请输入数字(1-7)。\n");
}
}
if (attempts == 0) {
printf("错误次数超过限制,退出界面。\n");
}
return 0;
}
```
使用该代码,用户会被提示输入数字(1-7),根据输入的数字,再次输入对应顺序下的密码。程序会判断密码是否正确,如果正确则打印"欢迎进入!",如果错误则提示重试的剩余次数。如果用户连续三次输入错误的密码,程序会显示"错误次数超过限制,退出界面。"
### 回答3:
下面是用C语言实现的代码:
```c
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#define MAX_PASSWORD_LENGTH 20
#define MAX_CHANCES 3
int main() {
char* passwords[7] = {"password1", "password2", "password3", "password4", "password5", "password6", "password7"};
int numbers[7] = {1, 2, 3, 4, 5, 6, 7};
int inputNumber;
char inputPassword[MAX_PASSWORD_LENGTH];
int chances = MAX_CHANCES;
while (chances > 0) {
printf("请输入数字:");
scanf("%d", &inputNumber);
if (inputNumber < 1 || inputNumber > 7) {
printf("无效的数字,请重新输入。\n");
continue;
}
printf("请输入第%d个口令:", inputNumber);
scanf("%s", inputPassword);
if (strcmp(inputPassword, passwords[inputNumber - 1]) == 0) {
printf("欢迎进入!\n");
break;
} else {
chances--;
printf("口令错误,请重试。剩余尝试次数:%d\n", chances);
}
}
if (chances == 0) {
printf("错误次数过多,程序退出。\n");
}
return 0;
}
```
代码中使用了一个字符串指针数组`passwords`存储7个口令,还有一个整数数组`numbers`存储对应的数字顺序。程序通过循环让用户输入数字和对应的口令,通过`strcmp`函数判断输入的口令是否和数组中的口令对应,如果对应正确,显示"欢迎进入";如果对应错误,剩余重试次数减一,显示"口令错误,请重试"以及剩余尝试次数;如果重试次数达到指定上限,显示"错误次数过多,程序退出"。
阅读全文