對各家公司所開的價進行比價,取能提供最多服務、或服務數目相同但價格最便宜的公司

[心得]

1.scanf() 使用時要小心,當讀取兩個數之後還有\n,如果再加上 gets(input) 讀取時讀到的不是下一行: 要重複 gets(input),或是 scanf() 中包含\n

2.複製字串使用 strcpy(new,original)

3.每次迴圈重來時,記得把一些值歸零

 

#include <stdio.h>
#include <string.h>
#include <stdlib.h>

int main()
{
    char input[81];
    char name[81];
    char RFP[1000][81];
    int n,p,r;
    float d;
    int i,j;
    int first=1;
   
    while(1)
    {
        int rMax=0;
        float dMin=0.0;
       
        scanf("%d %d",&n,&p);
        if(n==0&&p==0) break;
        gets(input);
        for(i=0;i<n;i++) gets(input);
       
        for(i=0;i<p;i++)
        {
            gets(name);
            scanf("%f %d\n",&d,&r);
            for(j=0;j<r;j++) gets(input);
           
            if((r>rMax)||((r==rMax)&&(d<dMin)))
            {
                rMax=r;
                dMin=d;
                strcpy(RFP[first],name);
            }
        }
        first++;
    }
   
    for(i=1;i<first;i++)
    {
        if(i!=1) printf("\n");       
        printf("RFP #%d\n%s\n",i,RFP[i]);
    }
   
    system("PAUSE");
    return 0;
}

arrow
arrow
    全站熱搜

    RingsACM 發表在 痞客邦 留言(0) 人氣()