C语言经典例题(22)

server/2024/10/21 7:40:48/

文章目录

        • 1.简单计算器
        • 2.获得月份天数
        • 3.HTTP状态码
        • 4. 图像相似度
        • 5.有序序列插入一个数

1.简单计算器

题目描述:

KK实现一个简单计算器,实现两个数的“加减乘除”运算,用户从键盘输入算式“操作数1运算符操作数2”,计算并输出表达式的值,如果输入的运算符号不包括在(+、-、*、/)范围内,输出“Invalidoperation!”。当运算符为除法运算,即“/”时。如果操作数2等于0.0,则输出“Wrong!Division by zero!”

输入描述:

多组输入,一行,操作数1运算符操作数2(其中运算符号包括四种:+、-、*、/)。

输出描述:

针对每组输入,输出为一行。如果操作数和运算符号均合法,则输出一个表达式,操作数1运算符操作数2=运算结果,各数小数点后均保留4位,数和符号之间没有空格。如果输入的运算符号不包括在(+、-、*、/)范围内,输出“Invalid operation!”。当运算符为除法运算,即“/”时。如果操作数2等于0.0,则输出“Wrong!Division by zero!”。

输入:

1.0+3.0

1.0;4.0

44.0/0.0

输出:

1.0000+3.0000=4.0000

Invalid operation!

Wrong!Division by zero!

参考代码:

#include <stdio.h>int main()
{double x1 = 0;double x2 = 0;char ch = 0;while (scanf("%lf%c%lf", &x1, &ch, &x2) != EOF){switch (ch){case '+':printf("%.4lf%c%.4lf=%.4lf\n", x1, ch, x2, x1+x2);break;case '-':printf("%.4lf%c%.4lf=%.4lf\n", x1, ch, x2, x1- x2);break;case '*':printf("%.4lf%c%.4lf=%.4lf\n", x1, ch, x2, x1 * x2);break;case '/':if (x2 == 0.0){printf("Wrong!Division by zero!\n");break;}printf("%.4lf%c%.4lf=%.4lf\n", x1, ch, x2, x1 / x2);break;default:printf("Invalid operation!\n");break;}}return 0;
}
2.获得月份天数

题目描述:

KK想获得某年某月有多少天,请帮他编程实现。输入年份和月份,计算这一年这个月有多少天。

输入描述:

多组输入,一行有两个整数,分别表示年份和月份,用空格分隔。

输出描述:

针对每组输入,输出为一行,一个整数,表示这一年这个月有多少天。

输入:

2008 2

输出:

29

参考代码:

#include <stdio.h>int main()
{int year = 0;int month = 0;int days[12] = { 31,28,31,30,31,30,31,31,30,31,30,31};while (scanf("%d %d", &year, &month) != EOF){int day = days[month - 1];if (year % 4 == 0 && year % 100 != 0 || year % 400 == 0){if (month == 2){day += 1;}}printf("%d\n", day);}return 0;
}
3.HTTP状态码

题目描述:

KK访问网站,得到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

输入:

200

输出:

OK

参考代码:

#include <stdio.h>int main()
{int n = 0;while (scanf("%d", &n) != EOF){switch (n){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;default:break;}}
}
4. 图像相似度

题目描述:

给出两幅相同大小的黑白图像(用0-1矩阵)表示,求它们的相似度。若两幅图像在相同位置上的像素

点颜色相同,则称它们在该位置具有相同的像素点。两幅图像的相似度定义为相同像素点数占总像素点数的百分比。

输入描述:

第一行包含两个整数m和n,表示图像的行数和列数,用单个空格隔开。1≤m≤100, 1≤n≤100。之后m行,每行n个整数0或1,表示第一幅黑白图像上各像素点的颜色,相邻两个数用单个空格隔开。之后m行,每行n个整数0或1,表示第二幅黑白图像上各像素点的颜色,相邻两个数用单个空格隔开。

输出描述:

一个实数,表示相似度(以百分比的形式给出),精确到小数点后两位。

输入:

3 3
1 0 1
0 0 1
1 1 0
1 1 0
0 0 1
0 0 1  

输出:

44.44

参考代码:

#include <stdio.h>int main()
{int m = 0;int n = 0;int a[100][100] = { 0 };int b[100][100] = { 0 };float count = 0.0;int i = 0;int j = 0;scanf("%d %d", &m, &n);for (i = 0; i < m; i++){for (j = 0; j < n; j++){scanf("%d", &a[i][j]);}}for (i = 0; i < m; i++){for (j = 0; j < n; j++){scanf("%d", &b[i][j]);}}for (i = 0; i < m; i++){for (j = 0; j < n; j++){if (a[i][j] == b[i][j]){count++;}}}printf("%.2f\n", 100.0 * count / (m*n));return 0;
}
5.有序序列插入一个数

题目描述:

有一个有序数字序列,从小到大排序,将一个新输入的数插入到序列中,保证插入新数后,序列仍然是升序。

输入描述:

第一行输入一个整数(0≤N≤50)。第二行输入N个升序排列的整数,输入用空格分隔的N个整数。第三行输入想要进行插入的一个整数。

输出描述:

输出为一行,N+1个有序排列的整数。

输入:

5

1 6 9 22 30

8

输出:

1 6 8 9 22 30

参考代码:

    #include <stdio.h>int main(){int n = 0;int m = 0;int arr[50] = { 0 };int i = 0;scanf("%d", &n);for (i = 0; i < n; i++){scanf("%d", &arr[i]);}scanf("%d", &m);for (i = n; i > 0; i--){if (arr[i-1] > m){arr[i] = arr[i - 1];}else{arr[i] = m;break;}}if (i == 0){arr[0] = m;}for (i = 0; i < n + 1; i++){printf("%d ", arr[i]);}return 0;}

http://www.ppmy.cn/server/4012.html

相关文章

SpringMVC (1)第一个程序

springmvc 1、介绍2、第一个应用程序3、其余问题&#xff1a;3.1 web.xml3.2 thymeleaf模板引擎 1、介绍 MVC是一种软件架构模式&#xff08;是一种软件架构设计思想&#xff0c;不止Java开发中用到&#xff0c;其它语言也需要用到&#xff09;&#xff0c;它将应用分为三块&a…

【黑马程序员——Redis入门】

1. 初识Redis 1.1 认识NoSQL NoSQL是指“不仅仅是SQL”&#xff08;Not Only SQL&#xff09;的缩写。它是一种数据库管理系统&#xff08;DBMS&#xff09;的范畴&#xff0c;用于存储和检索大量结构化或非结构化数据。与传统的关系型数据库管理系统&#xff08;RDBMS&#…

面试算法题之暴力求解

这里写目录标题 1 回溯1.1 思路及模板1.2 例题1.2.1 全排列1.2.2 N 皇后1.2.3 N皇后问题 II 1 回溯 1.1 思路及模板 抽象地说&#xff0c;解决一个回溯问题&#xff0c;实际上就是遍历一棵决策树的过程&#xff0c;树的每个叶子节点存放着一个合法答案。你把整棵树遍历一遍&a…

ssm420基于JavaEE的企业人事管理信息系统的设计与实现论文

摘 要 现代经济快节奏发展以及不断完善升级的信息化技术&#xff0c;让传统数据信息的管理升级为软件存储&#xff0c;归纳&#xff0c;集中处理数据信息的管理方式。本企业人事管理信息系统就是在这样的大环境下诞生&#xff0c;其可以帮助管理者在短时间内处理完毕庞大的数据…

Ubuntu如何给tar.gz文件创建桌面快捷方式

在Ubuntu中&#xff0c;给.tar.gz文件创建URL桌面图标快捷方式或者是启动脚本桌面图标快捷方式可以通过创建一个.desktop文件来实现。.desktop文件是Linux系统中用于定义应用程序启动器的文件格式&#xff0c;它们通常包含图标、名称和执行命令等信息。以下是创建.tar.gz文件的…

javascript模块化学习

Js模块化 【成长期】原始的js模块化 // 使用立即执行函数 var的方式 // 例如 有base.js 和 main.js两个文件 // 其中main.js需要调用base.js中的函数 可以这样写/** base.js */ var baseModule (function () {var a 1;var b 11;var c 22;console.log(a, b, c)…

static+单例模式+类的复合继承

汇编语言 汇编语言是最靠谱的验证“编程语言相关知识点”正确性的方式 汇编语言与机器语言一一对应&#xff0c;每一条机器语言都有与之对应的汇编指令 机器语言是计算机使用的语言&#xff0c;它是一串二进制数字 汇编语言可以通过汇编得到机器语言机器语言可以通过反汇编得到…

FILE类与IO流

目录 File类的实例化与常用方法 File类的理解 文件路径的表示方式&#xff1a; API的使用 IO流概述与流的分类 I/O流中的是Input/Output的缩写 IO流的分类&#xff08;不同角度&#xff09; Java程序中的IO流涉及40多个&#xff0c;但实际上都是由4个抽象类衍生出来的。 F…