目前主要分为三个专栏,后续还会添加:
感谢阅读!
初来乍到,如有错误请指出,感谢!
描述
KiKi访问网站,得到HTTP状态码,但他不知道什么含义,BoBo老师告诉他常见HTTP状态码:200(OK,请求已成功),202(Accepted,服务器已接受请求,但尚未处理。)400(Bad Request,请求参数有误),403(Forbidden,被禁止),404(Not Found,请求失败),500(Internal Server Error,服务器内部错误),502(Bad Gateway,错误网关)。
输入描述:
多组输入,一行,一个整数(100~600),表示HTTP状态码。
输出描述:
针对每组输入的HTTP状态,输出该状态码对应的含义,具体对应如下:
200-OK
202-Accepted
400-Bad Request
403-Forbidden
404-Not Found
500-Internal Server Error
502-Bad Gateway
思路 :
定义一个变量
用户输入
要注意数值的范围
以及输出的格式 一定不要忘记换行符
代码 1 :
# include <stdio.h>
int main ()
{
int sum = 0;
while (scanf("%d",&sum)!=EOF)
{
if (sum>=100&&sum<=600) //if 语句判断是否 在(100~600)之间
{
switch (sum)
{
case 200:
printf("OK\n");
break;
case 202:
printf("Accepted\n");
break;
case 400:
printf("Bad Request\n");
break;
case 403:
printf("Forbidden\n");
break;
case 404:
printf("Not Found\n");
break;
case 500:
printf("Internal Server Error\n");
break;
case 502:
printf("Bad Gateway\n");
break;
}
}
else
{
printf("输入错误\n");
}
}
return 0;
}
代码 2:
int main()
{
int a = 0;
while ((scanf("%d", &a)) != EOF)
{
if (a == 200)
{
printf("OK\n");
}
else if (a == 202)
{
printf("Accepted\n");
}
else if (a == 400)
{
printf("Bad Request\n");
}
else if (a == 403)
{
printf("Forbidden\n");
}
else if (a == 404)
{
printf("Not Found\n");
}
else if (a == 500)
{
printf("Internal Server Error\n");
}
else if (a == 502)
{
printf("Bad Gateway\n");
}
}
return 0;
}
以下来自 AI 回答
知识点:
-
输入输出处理:
- 使用
scanf
函数读取输入,printf
函数输出结果。 - 例子:
scanf("%d", &statusCode);
用于读取一个整数状态码。
- 使用
-
条件语句:
- 使用
if-else
或switch-case
语句根据条件执行不同的代码块。 - 例子:
switch (statusCode) { ... }
用于根据状态码选择不同的输出。
- 使用
-
循环控制:
- 使用
while
循环来处理多组输入,直到输入结束。 - 例子:
while (scanf("%d", &statusCode) == 1) { ... }
循环处理每一组输入。
- 使用
-
整数范围判断:
- 检查输入的整数是否在特定的范围内(题目中给定的是100到600)。
- 例子:如果需要检查,可以添加一个
if
语句来跳过不在这个范围内的输入。
-
格式化输出:
- 使用
printf
的格式化输出功能来输出特定格式的字符串。 - 例子:
printf("200-OK\n");
输出状态码和对应的描述。
- 使用
-
默认情况处理:
- 使用
default
选项来处理switch-case
语句中未明确列出的情况。 - 例子:
default: printf("Unknown Status Code\n");
用于输出未知的状态码。
- 使用
-
多组数据输入:
- 理解如何连续处理多组输入数据,直到遇到文件结束符(EOF)。
- 例子:循环中的
scanf
调用将读取直到没有更多的输入。
-
错误处理:
- 对于不符合要求的输入,如不在指定范围内的HTTP状态码,进行适当的错误处理。
- 例子:可以添加逻辑来忽略或报告非法输入。
-
编程风格:
- 保持代码的可读性和结构化,使用适当的缩进和空格。
- 例子:在
switch
语句的每个case
后面添加break
语句来避免代码块的意外合并。
-
函数的单一职责:
- 尽量使每个函数(即使在这个简单的例子中是主函数)只负责一个单一的任务。
- 例子:
main
函数只负责读取输入和输出结果,不涉及其他复杂的逻辑。
附 AI 生成代码
不正确哈 有点瑕疵 但基本原理没错
#include <stdio.h>
int main() {
int statusCode;
// 循环直到输入结束
while (scanf("%d", &statusCode) == 1) {
// 使用switch-case根据状态码输出对应的描述
switch (statusCode) {
case 200:
printf("200-OK\n");
break;
case 202:
printf("202-Accepted\n");
break;
case 400:
printf("400-Bad Request\n");
break;
case 403:
printf("403-Forbidden\n");
break;
case 404:
printf("404-Not Found\n");
break;
case 500:
printf("500-Internal Server Error\n");
break;
case 502:
printf("502-Bad Gateway\n");
break;
// 如果需要处理不在100到600之间的状态码
default:
// 输出错误信息或忽略
printf("Unknown Status Code\n");
break;
}
}
// 返回0表示程序正常结束
return 0;
}