帮忙看看。非常紧迫
只有在2009年6月26日中午13点前帮忙的朋友。我才会结账送点数。过期的话这个帖子就失去意义了帮我看看程序有什么问题啊。为什么什么错误都没有,运行的时候统计有问题。能帮我改吗。急要。中午要交了。
我要实现的功能。打开一个文件,在文件里的内容分别查找特定的字母和单词。并统计。查字母写一个程序。查单词
写一个程序。
如果还有时间的话。在帮我看看排序的那一个。。实现功能,打开一个文件,对里面的单词进行字典序排序
查找单词数的程序:
#include<stdio.h>
#define R 30
#define MAXLINE 100
void main(){
char fname[R],pattern[R],s[MAXLINE];
FILE *fp;
int i,j,k,l,dworrd;
char c;
printf("please enter word\n");
gets(pattern);
printf("Please enter the file name :\n");
/*输入保存的文件名*/
scanf("%s",fname);
/*打开统计文本*/
if((fp=fopen(fname,"r"))==NULL){
printf("can not open the file\n");
exit(0);
}
for(i=0;((c=fgetc(fp))!=EOF)&&(i<100);i++)
s[i++] = c;
if(i>0){
for (l=0; s[l] != EOF&&(l<100); l++) {
for (j=l, k=0; pattern[k]!='\0' && s[j]==pattern[k]; j++,k++)
;
if (k > 0 && pattern[k] == '\0')
dworrd++;
}
}
printf("%d",dworrd);
fclose(fp);
}
查找字母数的程序:
#include<stdio.h>
#define R 30
void main(){
char fname[R],fname1[R];
int d,c;
int dletter; /*查找字母数*/
FILE *fp3,*fp31;
/*输入要查找的字母*/
printf("please enter the char:\n");
d=getchar();
/*输入打开的文件名*/
printf("Please enter the file name :\n");
scanf("%s",fname);
/*输入保存结果的文件名*/
printf("Save the results of input File Name :\n");
scanf("%s",fname1);
/*打开文件*/
if((fp3=fopen(fname,"r"))==NULL){
/*打开文件*/
printf("can not open\n");
exit(0);
}
printf("Please enter the letters to find\n");
/*查找字母数*/
while((c=fgetc(fp3))!=EOF){
if(c==d){
++dletter;
}
printf(" look for letter is %d",dletter);
printf("Save the results of input File Name :\n");
if((fp31=fopen(fname1,"w"))==NULL){
printf("can not open\n");
exit(0);
}
fprintf(fp31," look for letter is %d",dletter);
fclose(fp31);
fclose(fp3);
}
}
排序的程序:
#include<stdio.h>
#include<string.h>
#define R 30
#define L 100
void sort(char *str,L){
char *pt;
int i,j,k;
for(i=0;i<L-1;i++){
k=i;
for(j=i+1;j<L;j++)
if(strcmp(str[k],str[j])>0)
k=j;
if(k!=i){
pt=str[i];
str[i]=str[k];
str[k]=pt;
}
}
}
void print(char *str,L){
int i;
for(i=0;i<L;i++)
printf("%s\n"str[i]);
}
void main(){
FILE *fp;
char fname[R],str[L];
int i;
printf("Enter the file name:\n");
scanf("%s",fname);/*输入文件名*/
if((fp=fopen(fname,"r"))==NULL){
/*打开文件*/
printf("can not open\n");
exit(0);
}
for(i=0;i<L;i++){
fscanf(fp," %s ",str[i]);
}
sort(str,L);
print(str,L);
fclose(fp);
}
[[it] 本帖最后由 a17604032 于 2009-6-26 06:11 编辑 [/it]]