新的课程开始了,看到老师的题目首先想到要用文件流打开文本文档,在2月27日19:30~20:30,翻书猛补知识。过后,没有头绪,休息了。在2月28日7:30~8:30,上网寻找做题思路,大致流程较清晰,但编程无望。在3月2日,先寻找英文版小说,后开始编程,想与做确实不同,多次尝试未果,继续上网寻求帮助,用结构体与大小写转换都是通过上网得到的启发。虽然编程道路坎坷,但是英文小说的中文版(富爸爸穷爸爸)大致看了看,里面的精彩语录很受启发“要懂得如何「让钱来替你工作」,而不是「为了钱而工作」”,“什么是资产?资产就是向你口袋送钱的东西。什么是负债?负债就是把钱从你口袋掏出的东西”,“从长期来看,重要的不是你挣了多少钱,而是要看你能留下多少钱,以及留住了多久。”当然,现在最重要的还是好好实践。
1 #include<stdio.h> 2 #include<iostream.h> 3 #include<string.h> 4 struct w 5 { 6 char c[50]; //单词 7 int num; //出现次数 8 }w[100]; 9 int main() 10 { 11 FILE *fptr; 12 char b[50],ch; 13 int i=0,j=0,k=0,m=1,t=0,flag=0; 14 fptr=fopen("dad.txt","r"); 15 while((ch=fgetc(fptr))!=EOF) 16 { 17 if('A'<=ch&&ch<='Z') 18 ch=ch+32; //字母为大写时转换为小写 19 if('a'<=ch && ch<='z') 20 { 21 b[i]=ch; 22 i++; 23 flag=1; 24 } 25 else 26 { 27 if(ch=='-'&&(ch=fgetc(fptr))=='\n') 28 { 29 flag=0; 30 } 31 32 else 33 { 34 if(flag==1) 35 { b[i]='\0';i=0;flag=0;m=0; 36 for(j=0;j<k;j++) 37 { 38 if(strcmp(b,w[j].c)==0) 39 { 40 m=1; 41 break; 42 } 43 } 44 if(m) 45 w[j].num++; 46 else 47 { 48 w[k].num=1; 49 strcpy(w[k].c,b); 50 k++; 51 } 52 } 53 } 54 if(ch>='A' && ch<='Z') 55 ch+=32; 56 if(ch>='a' && ch<='z') 57 { 58 b[i]=ch; 59 i++; 60 flag=1; 61 } 62 } 63 } 64 cout<<"出现最多的十个单词是:"<<endl; 65 for(i=0;i<k&&i<10;i++) //简单选择排序 66 { 67 t=0; 68 while(w[t].num==0) 69 t++; 70 for(j=1;j<k;j++) 71 { 72 if(w[j].num>w[t].num) 73 t=j; 74 else 75 if(w[j].num==w[t].num) 76 { 77 if(strcmp(w[j].c,w[t].c)<0) 78 t=j; 79 } 80 } 81 cout<<w[t].c<<" "<<w[t].num<<endl; 82 w[t].num=0; 83 } 84 return 0; 85 }
21:07:47