这道题C语言编程题我有一个测试点总是通不过,请问我错在哪?
输入格式:
输入第一行给出一个正整数N(≤ 20)。随后N行,每行给出两个整数,分别是一个人的身高H(120 < H < 200;单位:厘米)和真实体重W(50 < W ≤ 300;单位:市斤),其间以空格分隔。
输出格式:
为每个人输出一行结论:如果是完美身材,输出You are wan mei!;如果太胖了,输出You are tai pang le!;否则输出You are tai shou le!。
源代码:
#include <stdio.h>
int main(void)
{
int N;
int height,weight;
int i;
double standard;
scanf("%d",&N);
for(i=0;i<N;i++)
{
scanf("%d %d",&height,&weight);
standard = (height-100)*0.9*2;
if(weight>0.9*standard&&weight<1.1*standard)
printf("You are wan mei!");
else
{
if(weight<standard)
printf("You are tai shou le!");
else
printf("You are tai pang le");
}
if(i != N-1)
printf("\n");
}
return 0;
} 展开
2019-10-02
程序没问题啊,能正常输出:
你说的通不过,是编译器报的错吗?
附了一个代码,是一次性输入之后,然后一次性依次每行输出:
#include<stdio.h>
#include<stdlib.h>
int main()
{
int N;
int height, weight;
int i;
double standard;
scanf("%d", &N);
int *data = (int*)malloc(2 * N * sizeof(int));
for (i = 0; i < 2 * N; i = i + 2)
{
scanf("%d %d", &data[i], &data[i + 1]);
}
for (i = 0; i < 2 * N; i = i + 2)
{
height = data[i];
weight = data[i + 1];
standard = (height - 100)*0.9 * 2;
if (weight > 0.9*standard&&weight < 1.1*standard)
printf("You are wan mei!\n");
else
{
if (weight < standard)
printf("You are tai shou le!\n");
else
printf("You are tai pang le!\n");
}
}
system("pause");
return 0;
}
这个程序的问题应该是在某个测试点的答案错误,您的这段代码我提交了一下,结果比我的还多错了一个测试点( ̄□ ̄)
你说的测试点是什么东西?