PTA-基础编程题目集-7-13 日K蜡烛图
题目来源:https://pintia.cn/problem-sets/14/problems/793


找了很久为什么错误,直到我发现了:

中途我有看到自己写错了,但是在打着另外一个单词,打完之后我就忘记了忘记了,一直没想起来没想起来····

1 #include<stdio.h> 2 int main(){ 3 float Open,High,Low,Close; 4 scanf("%f %f %f %f",&Open,&High,&Low,&Close); 5 if(Close<Open){ 6 printf("BW-Solid"); 7 }else if(Close>Open){ 8 printf("R-Hollow"); 9 }else{ 10 printf("R-Cross"); 11 } 12 13 if(Low<Open&&Low<Close&&High>Open&&High>Close){ 14 printf(" with Lower Shadow and Upper Shadow"); 15 }else if(Low<Open&&Low<Close){ 16 printf(" with Lower Shadow"); 17 }else if(High>Open&&High>Close){ 18 printf(" with Upper Shadow"); 19 } 20 return 0; 21 }
过程遇到的问题:
1、如果会输出后半句话,那么前半句话和后半句话之间的空格要放在with前面,不能放在Solid、Hollow、Cross的后面,否则不输出后半句话的时候答案就是错的。
2、一开始先写的 if(Low<Open&&Low<Close) 和 else if(High>Open&&High>Close) ,但是这样会发现进入了这两个 if 的话就不会进入后面的 else if(Low<Open&&Low<Close&&High>Open&&High>Close),应该先满足范围小的 if ,小范围不满足再去满足大一点的范围。
3、原来if···else if···else if···语句结束的最后一个不一定要以 else 来结束也可以以 else if 来结束。

浙公网安备 33010602011771号