C语言经典例题(18) --- 判断字母、三角形判断、衡量人体胖瘦程度、翻转金字塔图案、平均身高

本文主要是介绍C语言经典例题(18) --- 判断字母、三角形判断、衡量人体胖瘦程度、翻转金字塔图案、平均身高,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

1.判断是不是字母

题目描述:

KK想判断输入的字符是不是字母,请帮他编程实现。

输入描述:

多组输入,每一行输入一个字符。

输出描述:

针对每组输入,输出单独占一行,判断输入字符是否为字母,输出内容详见输出样例。

输入:

A

6

输出:

A is an alphabet.

6 is not an alphabet.

参考代码:

#include <stdio.h>int main()
{int ch = 0;while ((ch = getchar()) != EOF){if (isalpha(ch)){printf("%c is an alphabet.\n", ch);}else{printf("%c is not an alphabet.\n", ch);}getchar();}return 0;
}
2.三角形判断

题目描述:

KK想知道已经给出的三条边a,b,c能否构成三角形,如果能构成三角形,判断三角形的类型(等边三角形、等腰三角形或普通三角形)。

输入描述:

题目有多组输入数据,每一行输入三个a,b,c(0<a,b,c<1000),作为三角形的三个边,用空格分隔。

输出描述:

针对每组输入数据,输出占一行,如果能构成三角形,等边三角形则输出“Equilateral triangle!”,等腰三角形则输出“Isosceles triangle!”,其余的三角形则输出“Ordinary triangle!”,反之输出“Not a triangle!”。

输入:

2 3 2

3 3 3

输出:

Isosceles triangle!

Equilateral triangle!

参考代码:

#include <stdio.h>int main()
{int a = 0;int b = 0;int c = 0;while (scanf("%d %d %d", &a, &b, &c) != EOF){if (a + b > c || a + c > b || c + b > a){if (a == b && b == c){printf("Equilateral triangle!\n");}else if ((a==b && a!= c) || (a==c && a!=b) ||(b==c  &&  b!= a)){printf("Isosceles triangle!\n");}else{printf("Ordinary triangle!\n");}}else{printf("Not a triangle!\n");}}return 0;
}
3.衡量人体胖瘦程度

题目描述:

在计算BMI(BodyMassIndex ,身体质量指数)的案例基础上,判断人体胖瘦程度。BMI中国标准如下表所示。

BMI范围分类
BMI<18.5偏瘦(Underweight)
BMI>=18.5且BMI<=23.9正常(Normal)
BMI>23.9且BMI<=27.9过重(Overweight)
BMI>27.9肥胖(Obese)

输入描述:

多组输入,每一行包括两个整数,用空格隔开,分别为体重(公斤)和身高(厘米)。

输出描述:

针对每行输入,输出为一行,人体胖瘦程度,即分类。

输入:

80 170

60 170

90 160

50 185

输出:

Overweight

Normal

Obese

Underweight

参考代码:

#include <stdio.h>int main()
{int h = 0;int w = 0;double bmi = 0.0;while (scanf("%d %d", &w, &h) != EOF){bmi = w / ((h / 100.0) * (h / 100.0));if (bmi < 18.9)printf("Underweight\n");else if (bmi >= 18.5 && bmi <= 23.9)printf("Normal\n");else if (bmi > 23.9 && bmi <= 27.9)printf("Overweight\n");elseprintf("Obese\n");}return 0;
}
4.翻转金字塔图案

题目描述:

KK学习了循环,BoBo老师给他出了一系列打印图案的练习,该任务是打印用“*”组成的翻转金字塔图案。

输入描述:

多组输入,一个整数(2~20),表示翻转金字塔边的长度,即“*”的数量,也表示输出行数。

输出描述:

针对每行输入,输出用“”组成的金字塔,每个“”后面有一个空格。

输入:

5

输出:

* * * * * * * * ** * * * * *

参考代码:

#include <stdio.h>int main()
{int n = 0;while (~scanf("%d", &n)){int i = 0;for (i = 0; i < n; i++){int j = 0;for (j = 0; j < i; j++){printf(" ");}for (j = 0; j < n-i; j++){printf("* ");}printf("\n");}}return 0;
}
5.平均身高

题目描述:

从键盘输入5个人的身高(米),求他们的平均身高(米)。

输入描述:

一行,连续输入5个身高(范围0.00~2.00),用空格分隔。

输出描述:

一行,输出平均身高,保留两位小数。

输入:

1.68 1.75 1.82 1.60 1.92

输出:

1.75

参考代码:

#include <stdio.h>int main()
{float score = 0.0;float sum = 0.0;int i = 0;for (i = 0; i < 5; i++){scanf("%f", &score);sum += score;}printf("%.2f\n", sum/5.0);return 0;
}

这篇关于C语言经典例题(18) --- 判断字母、三角形判断、衡量人体胖瘦程度、翻转金字塔图案、平均身高的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/878240

相关文章

usaco 1.2 Name That Number(数字字母转化)

巧妙的利用code[b[0]-'A'] 将字符ABC...Z转换为数字 需要注意的是重新开一个数组 c [ ] 存储字符串 应人为的在末尾附上 ‘ \ 0 ’ 详见代码: /*ID: who jayLANG: C++TASK: namenum*/#include<stdio.h>#include<string.h>int main(){FILE *fin = fopen (

poj 3259 uva 558 Wormholes(bellman最短路负权回路判断)

poj 3259: 题意:John的农场里n块地,m条路连接两块地,w个虫洞,虫洞是一条单向路,不但会把你传送到目的地,而且时间会倒退Ts。 任务是求你会不会在从某块地出发后又回来,看到了离开之前的自己。 判断树中是否存在负权回路就ok了。 bellman代码: #include<stdio.h>const int MaxN = 501;//农场数const int

科研绘图系列:R语言扩展物种堆积图(Extended Stacked Barplot)

介绍 R语言的扩展物种堆积图是一种数据可视化工具,它不仅展示了物种的堆积结果,还整合了不同样本分组之间的差异性分析结果。这种图形表示方法能够直观地比较不同物种在各个分组中的显著性差异,为研究者提供了一种有效的数据解读方式。 加载R包 knitr::opts_chunk$set(warning = F, message = F)library(tidyverse)library(phyl

透彻!驯服大型语言模型(LLMs)的五种方法,及具体方法选择思路

引言 随着时间的发展,大型语言模型不再停留在演示阶段而是逐步面向生产系统的应用,随着人们期望的不断增加,目标也发生了巨大的变化。在短短的几个月的时间里,人们对大模型的认识已经从对其zero-shot能力感到惊讶,转变为考虑改进模型质量、提高模型可用性。 「大语言模型(LLMs)其实就是利用高容量的模型架构(例如Transformer)对海量的、多种多样的数据分布进行建模得到,它包含了大量的先验

【WebGPU Unleashed】1.1 绘制三角形

一部2024新的WebGPU教程,作者Shi Yan。内容很好,翻译过来与大家共享,内容上会有改动,加上自己的理解。更多精彩内容尽在 dt.sim3d.cn ,关注公众号【sky的数孪技术】,技术交流、源码下载请添加微信号:digital_twin123 在 3D 渲染领域,三角形是最基本的绘制元素。在这里,我们将学习如何绘制单个三角形。接下来我们将制作一个简单的着色器来定义三角形内的像素

zoj 1721 判断2条线段(完全)相交

给出起点,终点,与一些障碍线段。 求起点到终点的最短路。 枚举2点的距离,然后最短路。 2点可达条件:没有线段与这2点所构成的线段(完全)相交。 const double eps = 1e-8 ;double add(double x , double y){if(fabs(x+y) < eps*(fabs(x) + fabs(y))) return 0 ;return x + y ;

POJ1269 判断2条直线的位置关系

题目大意:给两个点能够确定一条直线,题目给出两条直线(由4个点确定),要求判断出这两条直线的关系:平行,同线,相交。如果相交还要求出交点坐标。 解题思路: 先判断两条直线p1p2, q1q2是否共线, 如果不是,再判断 直线 是否平行, 如果还不是, 则两直线相交。  判断共线:  p1p2q1 共线 且 p1p2q2 共线 ,共线用叉乘为 0  来判断,  判断 平行:  p1p

Codeforces Round #113 (Div. 2) B 判断多边形是否在凸包内

题目点击打开链接 凸多边形A, 多边形B, 判断B是否严格在A内。  注意AB有重点 。  将A,B上的点合在一起求凸包,如果凸包上的点是B的某个点,则B肯定不在A内。 或者说B上的某点在凸包的边上则也说明B不严格在A里面。 这个处理有个巧妙的方法,只需在求凸包的时候, <=  改成< 也就是说凸包一条边上的所有点都重复点都记录在凸包里面了。 另外不能去重点。 int

寻找身高相近的小朋友

题目描述: 小明今年升学到小学一年级,来到新班级后发现其他小朋友们身高参差不齐,然后就想基于各小朋友和自己的身高差对他们进行排序,请帮他实现排序。 输入描述: 第一行为正整数H和N,0<H<200,为小明的身高,0<N<50,为新班级其他小朋友个数。第二行为N个正整数H1-HN,分别是其他小朋友的身高,取值范围0<Hi<200(1<=i<=N),且N个正整数各不相同。 输出描述: 输出

C语言 | Leetcode C语言题解之第393题UTF-8编码验证

题目: 题解: static const int MASK1 = 1 << 7;static const int MASK2 = (1 << 7) + (1 << 6);bool isValid(int num) {return (num & MASK2) == MASK1;}int getBytes(int num) {if ((num & MASK1) == 0) {return