}
/**********
【习题8.246】假设字符串中每个连续字母序列称为 “单词”。编写函数,在字符串s中顺序获取每个单 词,依次存入w指示的二维数组,并返回单词个数。 例如,若有s=\,则w={\\。注意:字符串结束符是'\\0',不 允许调用字符串库函数。 **********/
intfunc(char *s, char (*w)[10]) {
int t=0,h=0,k=0;
for(inti=0;*(s+i)!='\\0';i++)
if(('A'<=*(s+i)&&*(s+i)<='Z')||('a'<=*(s+i)&&*(s+i)<='z')) k++;
if(k==0)return 0;
for(i=0;*(s+i)!='\\0';i++) {
if(('A'<=*(s+i)&&*(s+i)<='Z')||('a'<=*(s+i)&&*(s+i)<='z')) w[t][h++]=*(s+i); else {
w[t][h]='\\0';; if(w[t][0]=='\\0') {h=0;continue;} else
{t++;h=0;} } }
return t; }
/**********
【习题8.282】编写函数,查找并返回p指示的二维数 组中的元素最大值。例如,二维数组的元素值依次为 {{45,38,-6,78},{34,48,70,4},{-9,0,4,20}},则 函数返回值为78。 **********/
intfunc(int (*p)[4], int n)
/* 求二维数组中的最大值 */ {
int t=p[0][0]; for(inti=0;i for(int j=0;j<4;j++) if(t /********** 【习题8.285】编写函数,依次对p指示的二维数组的 每一行元素值求和,并存入数组sum中。例如,若二维 数组的元素值依次为 {{45,38,-6,78},{34,48,70,4},{-9,0,4,20}}, 则sum[0..2]={155,156,15}。 **********/ voidfunc(int (*p)[4], int n, int *sum) /* 求二维数组中各行元素值的和 */ { int j; for(inti=0;i for(*(sum+i)=0,j=0;j<4;j++) *(sum+i)+=p[i][j]; } /********** 【习题8.288】编写函数,依次对p指示的二维数组的 每一列元素值求平均值,并存入数组avg中。例如, 若二维数组的元素值依次为 {{45,38,-6,78},{34,48,70,4},{-9,0,4,20}}, 则avg[0..2]={23.33,28.67,34.00}。 **********/ voidfunc(int (*p)[4], int n, float *avg) /* 求二维数组中各列元素值的平均值 */ { inti=0,j,t=0; for(j=0;j<3;j++) { for(i=0,*(avg+j)=0;i