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);
}
浙公网安备 33010602011771号