当前位置:编程学习 > C/C++ >>

HOJ 2991 Find the Point sscanf的用法

HOJ 2991
 
[cpp]  
//思路:用sscanf截取字符串转化为数字,然后找最大的和最小的输出即可  
//hint:输出的时候一定要输出char类型的,  
//     And the format should be the same as the input, especially for the format of the numbers!  
//     (这个应该是题目中给的对输出要求的提示信息)  
//测试:  
//1  
//4  
//(1,5) (0.5,5) (1,4) (0.5,4)  
#include <iostream>  
#include<cstdio>  
#define maxlen 110  
using namespace std;  
struct node  
{  
    double x;  
    double y;  
} array[maxlen],m;  
int main()  
{  
    int N,n,i,ma;  
    char s[maxlen][maxlen];  
    cin >> N;  
    while(N--)  
    {  
        cin >> n;  
        for(i=0; i<n; i++)  
        {  
            cin >> s[i];  
            sscanf(s[i], "(%lf,%lf)", &array[i].x, &array[i].y);  
            //用sscanf直接截取字符串将char类型的数字转化为double的存在结构体中  
        }  
        m.x=array[0].x;  
        m.y=array[0].y;  
        ma=0;  
        for(i=1; i<n; i++)  
        {  
            if(array[i].y>m.y)  
            {  
                ma=i;  
                m.y=array[i].y;  
                m.x=array[i].x;  
            }  
            if(array[i].y==m.y)  
            {  
                if(array[i].x<m.x)  
                {  
                    ma=i;  
                    m.y=array[i].y;  
                    m.x=array[i].x;  
                }  
            }  
        }//ma用来记录找到的y最大且x最小的下标  
        cout << s[ma]  << " ";  
        m.x=array[0].x;  
        m.y=array[0].y;  
        ma=0;  
        for(i=0; i<n; i++)  
        {  
            if(array[i].y<m.y)  
            {  
                ma=i;  
                m.y=array[i].y;  
                m.x=array[i].x;  
            }  
            if(array[i].y==m.y)  
            {  
                if(array[i].x<m.x)  
                {  
                    ma=i;  
                    m.y=array[i].y;  
                    m.x=array[i].x;  
                }  
            }  
        }//ma用来记录找到的y最小且x最小的下标  
        cout << s[ma]  << endl;  
    }  
    return 0;  
}  
 
 
补充:软件开发 , C++ ,
CopyRight © 2022 站长资源库 编程知识问答 zzzyk.com All Rights Reserved
部分文章来自网络,