- 论坛徽章:
- 0
|
菜鸟求救:关于一道三级上级题的困惑!
又遇到问题,向你请教了。
第一
编制函数calvalue()
(1)求出文件中的正整数的个数totnum
(2)求出这些数中各位数字之和是偶数的数的个数totcnt.
很简单,不过有一个地方我不解(程序只列了一部分,希望不影响理解)
- for(i=0;i<totnum;i++)
- j=num[0]-48+num[1]-48+num[2]-48+num[3]-48;
- /这里应该是求四位数的各数字之和,可是为什么要减去48?/
- if(j%2==0)
- /这里是偶数的情况,如果是基数,为什么可以直接用if(j%2)?/
- {totcnt++;
- he+=xx[i];}
复制代码
第二
编制函数DELWORD()分别删除一篇英语文章中的各行的空格,标点,以及10个不分大小的单词。余下的单词倒置后仍然按行顺序存入数组XX中。
答案
-
- DELWORD()
- {int i,j,k,tag;
- char word[21],*p;
- char str[80];
- for(i=0;i<maxline;i++)
- {memset(str,0,80);
- p=xx[i];
- j=0;
- k=0;
- memset(word,0,21);
- while(*P)
- {if(isalpha(*p))
- {word[j++]=*p++;
- if(*p)continue;}
- tag=1;
- for(k=0;k<10&&k++)
- if(strcmp(word,WORD[K])==0;
- if(tag)strcat(str,strrev(word));
- j=0;
- memset(word,0,21);
- while(*p&&(!isalpha(*p)))p++;
- }
- strcpy(xx[i],str);
- }
- }
复制代码
这里的for循环中(k<10&&tag)tag的作用是什么?
if中的tag是否=1?为什么要省略?是空不空的意思?那不是与指针有关? |
|