问题描述:
输入若干个点的坐标(x,y), x,y都是正整数。当输入(0,0)时表示输入结束。现要求输入完毕以后,输出一个长方形左下角和右上角的坐标。要求长方形区域覆盖所有坐标点。(若只输入了一个点的坐标,则可以只输出一个点)
代码展示:
1 #include<stdio.h> 2 int main(){ 3 int x,y; 4 int count = 0; 5 int i,j; 6 int point[100][2]; //存储输入的点 7 int left,right,up,down; //矩形上下左右四个点 8 printf("请输入坐标点,(0,0)表示结束:\n"); 9 scanf("%d %d",&point[count][0],&point[count][1]); 10 while(!(point[count][0]==0 &&point[count][1]==0)){ 11 count++; 12 scanf("%d %d",&point[count][0],&point[count][1]); 13 } 14 left = right = point[0][0]; 15 up = down = point[0][1]; 16 for(i=1; i<=count; i++){ //找左下角和右上角坐标 17 if(point[i][0] > right){ 18 right = point[i][0]; 19 } 20 if(point[i][0] < left){ 21 left = point[i][0]; 22 } 23 if(point[i][1] > up){ 24 up = point[i][1]; 25 } 26 if(point[i][1] < down){ 27 down = point[i][1]; 28 } 29 } 30 if(count == 1){ 31 printf("只输入了一个点,此点为:(%d, %d)\n",point[0][0],point[0][1]); 32 return 0; 33 }else{ 34 printf("左下角的坐标为:(%d, %d)\n",left,down); 35 printf("右上角的坐标为:(%d, %d)\n",right,up); 36 } 37 return 0; 38 }
运行截图: