c语言数据结构(3)

2018-12-22 23:59

预处理程序:define

?

定义函数

宏定义还可带变元(参数):

#define 标识符(标识符,标识符,…)如:

#define

max(A, B) ((A) > (B) ?(A) : (B))反例:

单词串于是语句x = max(p+q, r+s); 可替换为:#define prod(x,y) x*y

x = ((p+q) > (r+s) ? (p+q) : (r+s));则:注意:

a.b.

a=prod(b+c,d+e);被替换为:#define isupper(c ) (c >=?A? && c<=?Z?)?1:0

a=b+c*d+e;

宏定义名与参数间不能有空格,如max(A,B); 参数应用括号括起来,如(A)>(B)?(A) : (B)

intindex(chars[],chart[])

问题4.1:思考1(代码实现)inti,j,k;

{

#include #define MAXLINE 1000

#define tolower(c) (c>=?A?&&c<=?Z? ? ?a?-?A?+c:c)int index(char s[ ], char t[ ]);int main( ){

char filename[64], s[81], line[MAXLINE];

}

return(-1);}

for(i=0;s[i]!=?\\0?;i++){

for(j=i,k=0;t[k]!=?\\0?&&tolower(s[j])==tolower(t[k]);

j++,k++)

;if(t[k]==?\\0?)

return(i);

FILE *fp;

scanf(\scanf(\

if((fp = fopen(filename, \

printf(\

return 1;

}

while(fgets(line, 81, fp) != NULL)if(index(line, s) >= 0)printf(\

return 0;}

问题4.1:思考2

??

其它实现方法?

问题4.1中index只能查找的是子字符串的首次出现。请考虑如何查找子字符串的最后一次出现?

?

如果要查找一个字符串在一个文件中的出现次数,或查找一个字符串在一个文件中的所有出现行列位置,如何实现?(注意,index只能查找子字符串首次出现,如果一行中有多个子字符串怎样办?)

问题4.2

【问题描述】

某班有不超过200名的学生,从文件中输入某班学生成绩,对输入成绩按由高到低进行排序,并输出到另一个文件中。【输入形式】

从文件scorelist.in中读入学生成绩,学生成绩以整数形式按行存放。注意,学生成绩数目不确定。【输出形式】

将排序结果按行写到文件sorelist.out中。【样例输入】

若文件scorelist.in中有如下成绩:

5875628698【样例输出】

程序运行结束后文件scorelist.out中内容为:9886756258

问题4.2:算法分析算法:FILE *in, *out;in = fopen(“scorelist.in”, “r”);out = fopen(“scorelist.out”,”w”);算法:int socrelist[NUM],n=0;while(!feof(in))fscanf(in, “%d”, &scorelist[n++]);函数feof用来测试是否已读写到文件尾,若?问题可分解为如下几个部分:到文件尾,则返回1,否则返回0。函数fscanf用来从文件中读数据。与标准打开输入/输出文件输入scanf不同的是第一个参数为文件指针算法:。从文件中读入学生成绩设一个函数专门用来对学生成绩进行排序,函数原型为:void sortScore(int list[], int len )算法:for(i=0; i

c语言数据结构(3).doc 将本文的Word文档下载到电脑 下载失败或者文档不完整,请联系客服人员解决!

下一篇:电子商务b2c实验报告

相关阅读
本类排行
× 注册会员免费下载(下载后可以自由复制和排版)

马上注册会员

注:下载文档有可能“只有目录或者内容不全”等情况,请下载之前注意辨别,如果您已付费且无法下载或内容有问题,请联系我们协助你处理。
微信: QQ: