湘潭大学 2023年下学期《C语言》作业0x03-循环1 XTU OJ 1094,1095,1096,1112,1113
第一题
#include<stdio.h>int main()
{int t;int count=1;scanf("%d",&t);while(t--){int a,b,c;scanf("%d%d",&a,&b);c=a+b;printf("Case %d: %d\n",count,c);count++;}return 0;
}
记住多样例输入的模板,熟悉计数器的使用(count)
第二题
#include<stdio.h>int main()
{int a,b,count=1;while(~scanf("%d%d",&a,&b)){if(a==0&&b==0) break;int c=a+b;printf("Case %d: %d\n",count,c);count++;}return 0;
}
多样例输入,使用~,然后加一个条件判断跳出循环
if(a==0&&b==0) break;
第三题
#include<stdio.h>int main()
{int a,b,count=1;while(~scanf("%d%d",&a,&b)){ int c=a+b;printf("Case %d: %d\n",count,c);count++;}return 0;
}
去掉前一题的条件判断即可
第四题
#include<stdio.h>int main()
{int t;scanf("%d",&t);while(t--){double x1,y1,x2,y2,x3,y3;scanf("%lf%lf%lf%lf%lf%lf",&x1,&y1,&x2,&y2,&x3,&y3);if((y3-y1)*(x2-x1)==(y2-y1)*(x3-x1)) printf("Yes\n");else printf("No\n");}return 0;
}
斜率相等,表示三点共线,把斜率用点的坐标表示出来,交叉相乘作为条件判断的依据(就算使用双精度变量,除法还是会有精度损失,就会Wrong Answer)
第五题
#include<stdio.h>
#include<stdbool.h>int main()
{int t;scanf("%d",&t);while(t--){int x1,y1,x2,y2;bool flag=false;scanf("%d%d%d%d",&x1,&y1,&x2,&y2);if(x2>=x1&&x2<=y1) flag=true;else if(x1>=x2&&x1<=y2) flag=true;else if(x2>y1) flag=false;else if(x1>y2) flag=false;else if(x1>=x2&&y1<=y2) flag=true;else flag=true;if(flag) printf("Yes\n");else printf("No\n");}return 0;
}
分类讨论区间可能的六种情况,就是部分相交(2种),包含(2种),相离(2种)