您的位置:首页 > 其它

菜鸟练习PAT(九)

2015-07-10 11:20 106 查看
题目标号:A-1007

很坑爹的一道题目,数组一定要开得大一点,不然总有两个测试点过不去

题目:


[b]菜鸟代码:[/b]
#include "stdio.h"
#include "stdlib.h"
#include "string.h"

#define MAXNUM 12000

typedef struct
{
int N ;
float a ;
}D;

D *aD[MAXNUM] , *bD[MAXNUM] ;
float pD[MAXNUM] ;

int main(void)
{
int aK = 0 , bK = 0 , i = 0 , j =0 , count = 0 ;

memset(pD,0,sizeof(pD));

//get the first line
scanf("%d" , &aK);
for(i = 0 ; i< aK ; i++)
{
D* data = (D*)malloc(sizeof(D)) ;
int N = 0 ;
float a = 0 ;

scanf("%d %f" , &N , &a);
data->N = N ;
data->a = a ;
aD[i] = data ;

}

// get the second line
scanf("%d" , &bK);
for(i = 0 ; i< bK ; i++)
{
D* data = (D*)malloc(sizeof(D)) ;
int N = 0 ;
float a = 0 ;

scanf("%d %f" , &N , &a);
data->N = N ;
data->a = a ;
bD[i] = data ;

}

for(i =0 ; i <bK ; i++)
{
for(j =0 ; j< aK ; j++)
{
float a = 0;
int N = 0 ;

a = bD[i]->a * aD[j]->a ;
N = bD[i]->N + aD[j]->N ;

pD
= pD
+ a ;
}
}

// count the number
for(i = MAXNUM-1 ; 0 <= i  ; i--)
{
if(pD[i] != 0 )count ++ ;
}

printf("%d" , count);

for(i = MAXNUM-1 ; 0 <= i  ; i--)
{
if(pD[i] != 0 )printf(" %d %.1f" ,i , pD[i]);
}

return 0;
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: