你永远叫不醒一个装睡的人 —— 但是通过分析一个人的呼吸频率和脉搏,你可以发现谁在装睡!医生告诉我们,正常人睡眠时的呼吸频率是每分钟15-20次,脉搏是每分钟50-70次。下面给定一系列人的呼吸频率与脉搏,请你找出他们中间有可能在装睡的人,即至少一项指标不在正常范围内的人。\n\n输入格式:\n输入在第一行给出一个正整数 N(≤10)。随后 N 行,每行给出一个人的名字(仅由英文字母组成的、长度不超过3个字符的串)、其呼吸频率和脉搏(均为不超过100的正整数)。\n\n输出格式:\n按照输入顺序检查每个人,如果其至少一项指标不在正常范围内,则输出其名字,每个名字占一行。
代码逻辑完全不对,你的程序先输入的是名字,并不是名字、各项指标作为一行。
名字输入用%s对应一维char数组。
循环n次
scanf("%s%d%d",a[i],&b[i][0],&b[i][1]);
名字如果是中文起码需要7个字节,3个中文加上\0
你写得好像有点复杂了,输入人名无需嵌套循环吧
#include<stdio.h>
int main(void)
{
int n;
scanf("%d", &n);
struct
{
char name[4];
int hx;
int mb;
int b;
} per[n];
for (int i = 0; i < n; i++)
{
per[i].b = 0;
scanf("%3s%d%d", per[i].name, &per[i].hx, &per[i].mb);
if (!(per[i].hx >= 15 && per[i].hx <= 20) || !(per[i].mb >= 50 && per[i].mb <= 70))
per[i].b = 1;
}
for (int i = 0; i < n; i++)
{
if (per[i].b)
puts(per[i].name);
}
return 0;
}
您好,我是有问必答小助手,您的问题已经有小伙伴帮您解答,感谢您对有问必答的支持与关注!质数:除了1和它本身,没有其他的因数
思路:判断一个数是否为质数,只需要用输入的整数N除于2到N-1之间的整数,如果都不能被整除(即遍历一遍,取余都不为0),则输入的整数N为质数
#include <stdio.h>
int main()
{
int N; //输入整数N
int divisor; //输入被除数(循环次数)
//键盘输入一个数
scanf("%d\n",&N);
if(N==2)
{
printf("YES");
}
if(N>2)
{
//注意判断条件,divisor<N,完成循环还有一个自加,divisor++,自加后divisor=N
for(divisor=2;divisor<N;divisor++)
{
if(N%divisor==0)
{
printf("NO");
break;
//如果完成循环,则N为素数
//需注意,如果完成循环,会执行divisor++,divisor=N
}
}if(N==divisor)
{
printf("YES");
}
}
return 0;
}