1.初设想
在上一个程序过后,我想要编写一个可以判别你年龄区段的程序,由此我首先做出了下面这个程序。
这个程序在当我输入年龄<=70岁时是正常的,不过当我输入的年龄>=70岁,小黑窗里同时输出了成年,中年和老年,当我输入的年龄<=70岁时,小黑窗里又输出了未成年字样.
#include<stdio.h>
int main(void) {
int age = 80;
if (age >= 18)
printf("成年!\n");
if (age >= 40)
printf("中年!\n");
if (age >= 70)
printf("老年!\n");
else
printf("未成年!=3=\n");
return 0;
}
2.纠错误
由此我认为我需要用花括号来解决这个问题,因为else是在紧邻的上一个if不满足的情况下运行,所以我可以把前面所有if并在一起,这样就可以解决这个问题.
#include<stdio.h>
int main(void) {
int age = 50;
if (age >= 18) {
if (age >= 18) {
printf("成年!\n");
return 0;
}
if (age >= 40){
printf("中年!\n");
return 0;
}
if (age >= 70){
printf("老年!\n");
return 0;
}
}
else {
printf("未成年!=3=\n");
}
return 0;
}
但在我做出初步修改后,输入<=70岁时,小黑窗里未成年字样不再输出,但是第一个问题仍会存在.在我一直考虑花括号无果后,想到了程序顺序这一点,于是我改变了它们的顺序,并在完成所需的程序后结束程序.
#include<stdio.h>
int main(void) {
int age = 50;
if (age >= 18) {
if (age >= 70){
printf("老年!\n");
return 0;
}
if (age >= 40){
printf("中年!\n");
return 0;
}
if (age >= 18) {
printf("成年!\n");
return 0;
}
}
else {
printf("未成年!=3=\n");
}
return 0;
}
3.做完善
这个程序也就算是完整了.但是,在我输入输入年龄小于18时,程序需要运行前面若干行,我认为这比较多余,导致程序更为复杂,如果放在一个游戏里,这样就会使游戏变得更为卡顿,应该越简洁越好.所以最后我把未成年移到了最开始,就得到了最终的程序.
#include<stdio.h>
int main(void) {
int age = 80;
if (age < 18) {
printf("未成年=3=!\n");
}
if (age >= 18) {
if (age >= 70){
printf("老年!\n");
return 0;
}
if (age >= 40){
printf("中年!\n");
return 0;
}
if (age >= 18) {
printf("成年!\n");
return 0;
}
}
return 0;
}
至此,程序结束,谢谢大家捧场:)