嵌入式第九天学习

第九天学习

课外知识

ai的简洁循环

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

for (int i = 0; i < 3; ++i) {
    printf("%s", prompt[i]);
    scanf("%31s", massage[time1][i]);   // %31s 防止写越界
}
c 复制代码
#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/%[ ] 等不自动跳过空白的格式加前导空格 是最简单、最通用的"吃掉换行符"技巧。

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;

}

相关推荐
忧郁的橙子.11 小时前
02-本地部署Ollama、Python
linux·运维·服务器
醇氧11 小时前
【linux】查看发行版信息
linux·运维·服务器
琹箐12 小时前
最大堆和最小堆 实现思路
java·开发语言·算法
戌中横12 小时前
JavaScript——预解析
前端·javascript·学习
No8g攻城狮12 小时前
【Linux】Windows11 安装 WSL2 并运行 Ubuntu 22.04 详细操作步骤
linux·运维·ubuntu
renhongxia112 小时前
如何基于知识图谱进行故障原因、事故原因推理,需要用到哪些算法
人工智能·深度学习·算法·机器学习·自然语言处理·transformer·知识图谱
坚持就完事了12 小时前
数据结构之树(Java实现)
java·算法
算法备案代理12 小时前
大模型备案与算法备案,企业该如何选择?
人工智能·算法·大模型·算法备案
XiaoFan01212 小时前
免密批量抓取日志并集中输出
java·linux·服务器
●VON12 小时前
React Native for OpenHarmony:2048 小游戏的开发与跨平台适配实践
javascript·学习·react native·react.js·von