哇哦~这就是我
This is my way ~
C++博客
首页
新随笔
联系
聚合
管理
<
2008年3月
>
日
一
二
三
四
五
六
24
25
26
27
28
29
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
1
2
3
4
5
统计
随笔 - 10
文章 - 0
评论 - 2
引用 - 0
常用链接
我的随笔
我的评论
我参与的随笔
留言簿
(1)
给我留言
查看公开留言
查看私人留言
随笔档案
2008年5月 (2)
2008年4月 (3)
2008年3月 (5)
搜索
最新评论
1. re: C++第五次上机作业
你似乎还是不会使用批处理文件和命令行参数哟~~
--一个你的同学
2. re: 我可怜的第三次C++作业啊~~~只有70分~~~
可能是写的过程中有错,所以你要flash一下io或重设io的状态!
--梦在天涯
阅读排行榜
1. C++第四次上机作业(异或加密)(1378)
2. C++第五次上机作业(312)
3. 我恨死这道题了。。。。。。(292)
4. 详细解说 STL 排序(Sort) (288)
5. 我可怜的第三次C++作业啊~~~只有70分~~~(284)
评论排行榜
1. 我可怜的第三次C++作业啊~~~只有70分~~~(1)
2. C++第五次上机作业(1)
3. 第七次(0)
4. 11(0)
5. push!(0)
C++第四次作业(统计)
#include
<
iostream
>
#include
<
string
>
#include
<
iomanip
>
#include
<
vector
>
#include
<
algorithm
>
const
int
MAXN
=
100
;
using namespace std;
int
cmp (
const
void
*
p1 ,
const
void
*
p2 )
{
return
*
(
double
*
)p1
>*
(
double
*
)p2?
1
:
-
1
;
}
typedef struct COLOR
{
string
col;
double
mean,median,sum,value[MAXN];
int
num,p;
}COL;
int
find ( vector
<
COL
>
&
str , COL s )
{
for
( vector
<
COL
>
::size_type i
=
0
; i !
=
str.size(); i
++
)
if
( str[i].col
==
s.col )
{
str[i].sum
+=
s.sum;
str[i].num
++
;
str[i].value[str[i].p
++
]
=
s.sum;
return
1
;
}
return
0
;
}
void add ( vector
<
COL
>&
str , COL s )
{
if
( !find ( str , s ) )
{
s.p
=
1
;
s.num
=
1
;
s.value[
0
]
=
s.sum;
str.push_back(s);
}
}
void output ( vector
<
COL
>
str )
{
double
s
=
0
,v[MAXN],median;
int
n
=
0
,q,j
=
0
;
for
(vector
<
COL
>
::size_type i
=
0
; i !
=
str.size();
++
i )
{
for
(q
=
0
; q
<
str[i].p ; q
++
)
v[j
++
]
=
str[i].value[q];
s
+=
str[i].sum;
n
+=
str[i].p;
qsort(str[i].value,str[i].num,sizeof(str[i].value[
0
]),cmp);
if
(str[i].num%
2
)
str[i].median
=
str[i].value[(str[i].num
-
1
)
/
2
];
else
str[i].median
=
(str[i].value[str[i].num
/
2
]
+
str[i].value[str[i].num
/
2
-
1
])
/
2
;
cout
<<
str[i].col
<<
"
\t
"
<<
"
:
"
<<
"
sum=
"
<<
"
\t
"
<<
setw(
10
)
<<
str[i].sum
<<
"
\t
"
<<
"
mean=
"
<<
"
\t
"
<<
setw(
10
)
<<
str[i].sum
/
str[i].num
<<
"
\t
"
<<
"
median=
"
<<
"
\t
"
<<
setw(
10
)
<<
str[i].median
<<
endl;
/*
for
(
int
j
=
0
; j
<
str[i].p ; j
++
)
cout
<<
str[i].value[j]
<<
endl;
*/
}
qsort(v,j,sizeof(v[
0
]),cmp);
if
(n%
2
!
=
0
)
median
=
v[(n
-
1
)
/
2
];
else
median
=
(v[n
/
2
]
+
v[n
/
2
-
1
])
/
2
;
cout
<<
"
============================================================================
"
<<
endl;
cout
<<
"
ALL
"
<<
"
\t
"
<<
"
:
"
<<
"
sum=
"
<<
"
\t
"
<<
setw(
10
)
<<
s
<<
"
\t
"
<<
"
mean=
"
<<
"
\t
"
<<
setw(
10
)
<<
s
/
n
<<
"
\t
"
<<
"
median=
"
<<
"
\t
"
<<
setw(
10
)
<<
median
<<
endl;
/*
for
( j
=
0
; j
<
n ;j
++
)
cout
<<
v[j]
<<
endl;
*/
}
int
main ( )
{
vector
<
COL
>
str;
COL s;
while
( cin
>>
s.col
>>
s.sum )
{
add(str,s);
}
output( str );
}
posted on 2008-03-27 17:24
chinaeli
阅读(209)
评论(0)
编辑
收藏
引用
只有注册用户
登录
后才能发表评论。
【推荐】100%开源!大型工业跨平台软件C++源码提供,建模,组态!
网站导航:
博客园
IT新闻
BlogJava
知识库
博问
管理