模拟


输入一个四行五列的矩阵,找出每列最大的两个数。

输入描述:

每个用例包含四行,每行包括五个整数。代表一个四行五列的矩阵,矩阵元素全部是整数。

输出描述:

    可能有多组测试数据,对于每组数据,按照样例输出的格式将每列最大的两个数输出,如果最大的两个数中的一个数在这一列中有多个相同的值,则行值取行值小的那一个。     输出时要保留原矩阵的行列顺序,即在原矩阵中行值小的,在输出矩阵中的行值依然小。
#include 
using namespace std;

int data1[4][5];
int res[5][2];

int main(){

    while(scanf("%d",&data1[0][0])!=EOF){
        memset(res,-1,10*sizeof(int));
        //cout<
        int i=1;
        while(i<20){
            scanf("%d",&data1[i/5][i%5]);
            //cout<
            i++;
        }
        /*for(i=0;i<4;i++){
            for(int j=0;j<5;j++){
                cout<*/
        for(i=0;i<4;i++){
            for(int j=0;j<5;j++){
                if(res[j][0]==-1){
                    res[j][0]=i;
                    //cout<
                }
                else if(res[j][1]==-1){
                    res[j][1]=i;
                    //cout<
                }
                //else if(data[i][j]==data[res[j][0]][j]||data[i][j]==data[res[j][1]][j])
                  //  continue;
                else if(data1[i][j]>data1[res[j][0]][j]&&data1[i][j]>data1[res[j][1]][j]){
                    if(data1[res[j][0]][j]>data1[res[j][1]][j]){
                        res[j][1]=i;
                    }
                    else
                        res[j][0]=i;
                }
                else if(data1[i][j]>data1[res[j][0]][j]){
                    res[j][0]=i;
                    //cout<
                }
                else if(data1[i][j]>data1[res[j][1]][j]){
                    res[j][1]=i;
                    //cout<
                }
            }
        }
        int temp;
        for(i=0;i<5;i++){
            if(res[i][0]>res[i][1]){
                temp=res[i][0];
                res[i][0]=res[i][1];
                res[i][1]=temp;
            }
        }
        for(i=0;i<2;i++){
            for(int j=0;j<5;j++){
                //cout<
                printf("%d ",data1[res[j][i]][j]);
            }
            printf("\n");
        }
    }
    return 0;
}

 给出年分m和一年中的第n天,算出第n天是几月几号。

#include 
using namespace std;

int days[2][12]={{31,28,31,30,31,30,31,31,30,31,30,31},
                 {31,29,31,30,31,30,31,31,30,31,30,31}};

void cpt(int ind,int day){
    int i=0;
    while(day-days[ind][i]>0){
        day-=days[ind][i++];
    }
    printf("-%02d-%02d\n",i+1,day);
}

int main(){
    int year,day;
    while(scanf("%d %d",&year,&day)!=EOF){
        cout<<year;
        int ind;
        if((year%4==0&&year%100!=0)||(year%400==0))
            ind=1;
        else
            ind=0;
        cpt(ind,day);
    }
    return 0;
}