C语言程序设计进阶期末考试编程部分

1

最小包围矩形(10分)

题目内容:

给定一组二维坐标,表示直角坐标系内的一个多边形的连续的顶点的坐标序列。计算能包围这个多边形的平行于坐标轴的最小矩形,输出它的左下角和右上角的坐标。

输入格式:

第一行是一个正整数n表示顶点的数量,第二行是n组整数,依次表示每个顶点坐标的x和y值。

输出格式:

四个整数,依次表示所计算的矩形的左下角的坐标的x、y值和右上角坐标的x、y值。输出最后带有回车换行。

输入样例:

5

1 1 1 4 3 7 4 4 4 1

输出样例:

1 1 4 7

时间限制:500ms内存限制:32000kb

#include<stdio.h>
int main(){
    int num,xMax,yMax,xMin,yMin;
    scanf("%d",&num);
    int x[num-1],y[num-1];
    for (int i = 0; i < num; ++i)
    {
        scanf("%d",&x[i]);
        scanf("%d",&y[i]);
    }
    xMin=xMax=x[0];
    yMin=yMax=y[0];
    for (int i = 0; i < num; ++i)
    {
       if(x[i]>xMax) xMax = x[i];
       if(x[i]<xMin) xMin = x[i];
       if(y[i]>yMax) yMax = y[i];
       if(y[i]<yMin) yMin = y[i];
    }
    printf("%d %d %d %d\n",xMin,yMin,xMax,yMax);

    return 0;
}

思路比较简单,就是找四个数。

2

分数比较(10分)

题目内容:

本题要求编写程序,比较两个分数的大小。

输入格式:

输入在一行中按照“a1/b1 a2/b2”的格式给出两个分数形式的有理数,其中分子和分母全是int类型范围内的正整数。

输出格式:

在一行中按照“a1/b1 关系符 a2/b2”的格式输出两个有理数的关系。其中“>”表示“大于”,“<”表示“小于”,“=”表示“等于”。

注意在关系符前后各有一个空格。

输入样例:

1/2 3/4

输出样例:

1/2 < 3/4

时间限制:500ms内存限制:32000kb

#include<stdio.h>
int main(){
    float a,b,c,d;
    scanf("%f/%f %f/%f",&a,&b,&c,&d);
    float x=a/b,y=c/d;
    if(x>y)   printf("%d/%d > %d/%d",(int)(a),(int)(b),(int)(c),(int)(d));
        else if(x<y) printf("%d/%d < %d/%d",(int)(a),(int)(b),(int)(c),(int)(d));
            else printf("%d/%d = %d/%d",(int)(a),(int)(b),(int)(c),(int)(d));
    return 0;

}

类型转换还是有一些问题,解决不了。

猜你喜欢

转载自blog.csdn.net/DedicateToAI/article/details/81224295