我从简单到难,一起走上漫漫刷题路!
我会持续在我的博客中更新我每天刷题的内容!
相互交流!
大家一键三连,多多关注!
这是今天我给大家带来的题!以后难度逐渐加深!
1.计算体重指数
描述
问题:计算BMI指数(身体质量指数)。BMI指数(即身体质量指数,简称体质指数又称体重,英文为Body Mass Index,简称BMI),是用体重公斤数除以身高米数平方得出的数字,是目前国际上常用的衡量人体胖瘦程度以及是否健康的一个标准。主要用于统计用途,当我们需要比较及分析一个人的体重对于不同高度的人所带来的健康影响时,BMI值是一个中立而可靠的指标。
数据范围:输入的数据满足 50≤n≤180
输入描述:
一行,两个整数,分别表示体重(公斤),身高(厘米),中间用一个空格分隔。
输出描述:
一行,BMI指数(保留两位小数)。
#include<stdio.h> int main() { int w, h; float hm; scanf("%d %d", &w, &h); hm = h / 100.0; printf("%.2f", w / (float)(hm * hm)); return 0; }
2.计算三角形的周长和面积
描述
根据给出的三角形3条边a, b, c,计算三角形的周长和面积。
数据范围: 0<a,b,c≤100000
输入描述:
一行,三角形3条边(能构成三角形),中间用一个空格隔开。
输出描述:
一行,三角形周长和面积(保留两位小数),中间用一个空格隔开,输出具体格式详见输出样例。
#include<stdio.h> #include<math.h> int main() { float a,b,c; float p,s; scanf("%f%f%f",&a,&b,&c); p=(a+b+c)/2; s=sqrt(p*(p-a)*(p-b)*(p-c));//海伦公式 printf("circumference=%.2f area=%.2f",a+b+c,s); return 0; }
3.计算球体的体积
描述
给定一个球体的半径,计算其体积。其中球体体积公式为 V = 4/3*πr3,其中 π = 3.1415926。
数据范围:输入一个浮点值0≤n≤15
输入描述:
一行,用浮点数表示的球体的半径。
输出描述:
一行,球体的体积,小数点后保留3位。
#include<stdio.h> #define PAI 3.1415926 int main() { double r=0.0; scanf("%lf",&r); double v=0.0; v=4.0/3.0*PAI*r*r*r; printf("%.3f",v); return 0; }
4. 大小写转换
描述
实现字母的大小写转换。多组输入输出。
输入描述:
多组输入,每一行输入大写字母。
输出描述:
针对每组输入输出对应的小写字母。
#include <stdio.h> int main() { int ch = 0; while ((ch = getchar()) != EOF) { printf("%c\n", ch + 32); getchar(); } return 0; }
5.2的n次方计算
描述
不使用累计乘法的基础上,通过移位运算(<<)实现2的n次方的计算。
数据范围: 0≤n≤31
输入描述:
一行输入整数n(0 <= n < 31)。
输出描述:
输出对应的2的n次方的结果。
#include <stdio.h> #include <math.h> int main() { int n; scanf("%d", &n); printf("%d",2 << (n-1)); return 0; }
6.KiKi和酸奶
描述
BoBo买了一箱酸奶,里面有n盒未打开的酸奶,KiKi喜欢喝酸奶,第一时间发现了酸奶。KiKi每h分钟能喝光一盒酸奶,并且KiKi在喝光一盒酸奶之前不会喝另一个,那么经过m分钟后还有多少盒未打开的酸奶?
输入描述:
多组输入,每组输入仅一行,包括n,h和m(均为整数)。输入数据保证m <= n * h。
输出描述:
针对每组输入,输出也仅一行,剩下的未打开的酸奶盒数。
#include <stdio.h> #include<math.h> int main() { int n, h, m; scanf("%d%d%d", &n, &h, &m); { if (m% h== 0) printf("%d", n -( m / h)); else printf("%d", n - (m / h+ 1)); } return 0; }
7.计算y的值
描述
已知一个函数y=f(x),当x < 0时,y = 1;当x = 0时,y = 0;当x > 0时,y = -1。
输入描述:
一行,输入一个整数x。(-10000<x<10000)
输出描述:
一行,输出y的值。
#include <stdio.h> int main() { int x; while (scanf("%d", &x) != EOF) { if (x < 0) printf("%d\n", 1); else if (x == 0)printf("%d\n", 0); else printf("%d\n", -1); } return 0; }
8.矩阵交换
描述
KiKi有一个矩阵,他想知道经过k次行变换或列变换后得到的矩阵。请编程帮他解答。
输入描述:
第一行包含两个整数n和m,表示一个矩阵包含n行m列,用空格分隔。 (1≤n≤10,1≤m≤10)
从2到n+1行,每行输入m个整数(范围-231~231-1),用空格分隔,共输入n*m个数,表示第一个矩阵中的元素。接下来一行输入k,表示要执行k次操作(1≤k≤5)。接下来有k行,每行包括一个字符t和两个数a和b,中间用空格格分隔,t代表需要执行的操作,当t为字符'r'时代表进行行变换,当t为字符'c'时代表进行列变换,a和b为需要互换的行或列(1≤a≤b≤n≤10,1≤a≤b≤m≤10)。
提示:当t为别的字符时不需要处理
输出描述:
输出n行m列,为矩阵交换后的结果。每个数后面有一个空格。
#include <stdio.h> void swap(int* a, int* b) { int temp = *a; *a = *b; *b = temp; } int main() { int a, b; scanf("%d %d", &a, &b); int arr[a][b]; for (int i = 0; i < a; i++) { for (int j = 0; j < b; j++) { scanf("%d", &arr[i][j]); } } int t; scanf("%d\n", &t); while (t--) { char c; int m, n; scanf("%c%d%d\n", &c, &m, &n); if (c == 'r') { for (int i = 0; i < b; i++) { swap(&arr[m - 1][i], &arr[n - 1][i]); } } if (c == 'c') { for (int i = 0; i < a; i++) { swap(&arr[i][m - 1], &arr[i][n - 1]); } } } for (int i = 0; i < a; i++) { for (int j = 0; j < b; j++) { printf("%d ", arr[i][j]); } printf("\n"); } return 0; }