c 语言基础:L1-047 装睡

        你永远叫不醒一个装睡的人 —— 但是通过分析一个人的呼吸频率和脉搏,你可以发现谁在装睡!医生告诉我们,正常人睡眠时的呼吸频率是每分钟15-20次,脉搏是每分钟50-70次。下面给定一系列人的呼吸频率与脉搏,请你找出他们中间有可能在装睡的人,即至少一项指标不在正常范围内的人。

输入格式:

        输入在第一行给出一个正整数N(≤10)。随后N行,每行给出一个人的名字(仅由英文字母组成的、长度不超过3个字符的串)、其呼吸频率和脉搏(均为不超过100的正整数)。

输出格式:

        按照输入顺序检查每个人,如果其至少一项指标不在正常范围内,则输出其名字,每个名字占一行。

输入样例:

4
Amy 15 70
Tom 14 60
Joe 18 50
Zoe 21 71

输出样例:

Tom
Zoe

程序源码: 

#include     // 引入标准输入输出库。这允许我们使用例如printf和scanf等函数。  
#include   // 引入字符串处理库。这允许我们处理字符数组(例如名字)。  
  
// 定义一个结构体类型。结构体是一种组合多种类型的数据结构。  
// 这里,我们有三个成员:一个字符数组(用于存储名字,最多4个字符),以及两个整型(用于存储b_rate和p_rate)。  
typedef struct  
{  
    char name[4];  
    int b_rate;  
    int p_rate;  
} N;  
  
// 定义主函数。C程序的执行从这里开始。  
int main() {  
      
    // 定义一个N类型的数组,名为n,大小为10。这样我们可以存储10个N类型的对象。  
    N n[10];  
      
    // 定义并初始化一个整型变量cnt为10。这表示我们要读入10个数据记录。  
    int cnt = 10;    
      
    // 定义一个整型变量i,用于循环控制。  
    int i;  
      
    // 使用scanf函数读取用户输入的整数,并赋值给cnt变量。  
    scanf("%d", &cnt);  
      
    // 这个循环读取用户输入的每个数据记录,并存储到n数组中。  
    for (i = 0; i < cnt; i++)  
    {  
        // 使用scanf函数读取用户输入的字符串,整数,和整数,并分别存储到n[i].name, n[i].b_rate, 和 n[i].p_rate中。  
        // 注意这里scanf的格式是"%s",这意味着它读取一个字符串,并将其存储到给定的字符数组中。  
        scanf("%s %d %d", n[i].name, &n[i].b_rate, &n[i].p_rate);  
    }  
      
    // 这个循环检查每个数据记录,看是否满足b_rate和p_rate的条件。  
    for (i = 0; i < cnt; i++)  
    {  
        // 如果任何一个条件不满足,就打印出相应的名字。  
        if (n[i].b_rate < 15 || n[i].b_rate > 20 || n[i].p_rate < 50 || n[i].p_rate > 70)  
        {  
            // 使用printf函数打印出满足条件的名字。注意这里使用的是“->”来访问结构体的成员。  
            printf("%s\n", n[i].name);    
        }  
    }  
    // 返回0表示程序成功执行。这是main函数的约定。  
    return 0;    
}

你可能感兴趣的:(c,c语言)