嗜血魂K

导航

1.1 Greedy Gift Givers

简单练习题嗯,不过找出自己一个严重问题。并不知道memset怎么用。

暂时记为

对于非char

memset( , 0(-1), sizeof()) 我直接填的数组长度导致初始化未成功。因为涉及memset,sizeof。以后再理解。

//http://yiyunscu.blog.163.com/blog/static/36263320201042554133370/ 这篇不错,这里第一段就找到我所需要的了。按字节清空!

 

 

1. memset

 

     void *memset( void *dest, int c, size_t count );

 

     所需头文件"memory.h",主要功能是将目标指针dest对应count个字节内存空间的值初始化为c

 

 

关于标称,怎么感觉少了初始total http://ace.delos.com/usacoanal2?a=FkaDlLb2np9&S=gift1

嗯,至少让函数,变量名有意义点 = =

/*
ID:y7276571
LANG: C
TASK: gift1
*/
#include<stdio.h>
#include<string.h>
#define MAXN 20
char name[MAXN][MAXN];
int m;
int _search(char *find)
{
int i;
for(i = 0; i < m; i++)
if(strcmp(name[i], find)==0) return i;
return -1;
}
int main(void)
{
freopen("gift1.in", "r", stdin);
freopen("gift1.out", "w", stdout);
int i, j, k, p, n;
int income[MAXN];
char _name[MAXN];
memset(income, 0, sizeof(income));
scanf("%d", &m);
for(i = 0; i < m; i++) scanf("%s", name[i]);
for(i = 0; i < m; i++)
{
scanf("%s", _name);
j = _search(_name);
scanf("%d%d", &k, &n);
if(!n) continue;
income[j] += k%n - k; k = k/n;
for(j = 0; j < n; j++)
{
scanf("%s", _name);
p = _search(_name);
income[p] += k;
}
}
for(i = 0; i < m; i++)
printf("%s %d\n", name[i], income[i]);
exit(0);
}

posted on 2011-10-27 16:01  嗜血魂K  阅读(202)  评论(0)    收藏  举报