【发布时间】:2026-01-04 02:30:01
【问题描述】:
这个程序确定房间的面积,它是长度和宽度的乘积。房间是“太小”、“刚刚好”还是“太大”。如果房间“太小”或“太大”,可用空间与所需空间的差值,应为正数。
#include<stdio.h>
void main() {
// Declare variables and set initial values
int length, width, n, area, square;
// Print new values
printf("\nEnter room length:");
scanf("%d", length);
printf("\nEnter room width:");
scanf("%d", width);
printf("\nEnter number of students:");
scanf("%d", n);
// assigning area
area = length * width;
printf("\nArea is %d\n", area);
square = area - n * 10;
if (area > n*10) {
printf("Room is too large by %d square feet", square);
}
else if (area < n*10) {
printf("Room is too small by %d square feet", square);
}
else {
printf("Room size is just right");
}
}
【问题讨论】:
-
scanf("%d", length);--->scanf("%d", &length);,scanf("%d", width);--->scanf("%d", &width);和scanf("%d", n);--->scanf("%d", &n);。另外,main()的返回类型应该是int。 -
为了详细说明之前的评论,
scanf期待看到一个指针。&n的意思是“获取指向存储n的地址的指针。” -
如果您了解
scanfs 的工作原理,之后的一切都会变得简单。这是你见过的最复杂的函数。 -
感谢 H.S!我刚改了,还是不能输入学生号。
-
除非您检查返回,否则您无法正确使用任何输入功能(这尤其适用于
scanf()和家人.. .)