第九天学习

课外知识

ai的简洁循环

const char *prompt[3] = {"请输入你的名字:", "请输入你的学号:", "请输入你的成绩:"};

for (int i = 0; i < 3; ++i) {
    printf("%s", prompt[i]);
    scanf("%31s", massage[time1][i]);   // %31s 防止写越界
}
#include <stdio.h>

int main(void) {
    int n;
    printf("请输入元素个数:");
    if (scanf("%d", &n) != 1 || n <= 0 || n > 1000) {
        fprintf(stderr, "非法个数!\n");
        return 1;
    }

    int a[n];           // C99 可变长数组(VLA)
    printf("请输入 %d 个整数:", n);
    for (int i = 0; i < n; ++i) {
        if (scanf("%d", &a[i]) != 1) {
            fprintf(stderr, "输入错误!\n");
            return 1;
        }
    }

    /* 打印验证 */
    for (int i = 0; i < n; ++i)
        printf("%d ", a[i]);
    puts("");
    return 0;
}

一句话总结:
给 %c/%[ ] 等不自动跳过空白的格式加前导空格 是最简单、最通用的“吃掉换行符”技巧。

scanf(" %c", &ch);   // %c 前面有空格

查询系统

#include <stdio.h>
#include <string.h>
#include <windows.h>
char name1[10][32];
char password1[10][32];
char name[] = {0};
char password[] = {0};
int num = 0;
char massage[10][3][32];
void menu()
{
printf(“*********\n");
printf("***** 1.创建账户 \n");
printf("
2.登录账户 \n");
printf("
3.查询信息 \n");
printf("
4.退出 \n");
printf("
\n”);
}
void creat()
{
printf(“正在创建账户,请稍等。 \n”);
Sleep(1000);
while (1)
{
printf(“请输入账号:”);
scanf(" %s", name1[num]);
printf(“%s”, name1[num]);
printf(“请输入密码:”);
scanf(" %s", password1[num]);
printf(“账号为:%s ,密码为:%s \n”, name1[num], password1[num]);
num++;
break;
}
}
void getin()
{
int time1 = num;
int time2 = num;
int flag = 0;
while (1)
{
err:
printf(“请输入账号:\n”);
scanf(" %s", name);
// while (getchar() != ‘\n’)
// {}
while (time1 + 1)
{
int true1 = strcmp(name, name1[time1]);
if (true1 == 0)
{
break;
}
time1–;
if (time1 == -1)
{
printf(“账号错误请重新输入! \n”);
goto err;
}
}
break;
}
while (1)
{
err1:
printf(“请输入密码: \n”);
scanf(" %s", password);
while (getchar() != ‘\n’)
{
}
while (time2 + 1)
{
int true2 = strcmp(password, password1[time2]);
if (true2 == 0)
{
break;
}
time2–;
}
if (time2 == -1)
{
printf(“密码错误请重新输入! \n”);
goto err1;
}
break;
}
for (int i = 0; i < 3; i++)
{
if (i == 0)
{
printf(“请输入你的名字:”);
scanf(" %s", massage[time1][i]);
continue;
}
if (i == 1)
{
printf(“请输入你的学号:”);
scanf(" %s", massage[time1][i]);
continue;
}
if (i == 2)
{
printf(“请输入你的成绩:”);
scanf(" %s", massage[time1][i]);
continue;
}
}
printf(“您查询的序号为:%d \n”, time1);
}
void found()
{
printf(“请输入你的查询序号:”);
int a = 0;
scanf(" %d", &a);
for (int i = 0; i < 3; i++)
{
switch (i)
{
case 0:
printf(“您的名字为:%s \n”, massage[a][i]);
break;
case 1:
printf(“您的学号为:%s \n”, massage[a][i]);
break;
case 2:
printf(“您的成绩为:%s \n”, massage[a][i]);
break;
default:
break;
}
}
}
int main(int argc, char const *argv[])
{

menu();
int chose = 0;
printf("请输入你的选择:");
while (1)
{
    scanf("%d", &chose);
    if (chose == 1)
    {
        creat();
        Sleep(1000);
        menu();
        continue;
    }

    if (chose == 2)
    {
        getin();
        Sleep(1000);
        menu();
        continue;
    }
    if (chose == 3)
    {
        found();
        Sleep(1000);
        menu();
        continue;
    }
    if (chose == 4)
    {
        printf("下次再见!");
        break;
    }
    else
    {
        printf("选择错误,请重新输入:");
        continue;
    }
}
return 0;

}

Logo

有“AI”的1024 = 2048,欢迎大家加入2048 AI社区

更多推荐