赞
踩
题目描述:
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; }
题目描述:
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; }
题目描述:
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; } } }
题目描述:
给出两幅相同大小的黑白图像(用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; }
题目描述:
有一个有序数字序列,从小到大排序,将一个新输入的数插入到序列中,保证插入新数后,序列仍然是升序。
输入描述:
第一行输入一个整数(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; }
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。