C语言:对传入sp的字符进行统计,三组两个相连字母“ea”"ou""iu"出现的次数,并将统计结果存入ct所指的数组中。-在数组中找出最小值,并与第一个元素交换位置。
//对传入sp的字符进行统计,三组两个相连字母“ea”"ou""iu"出现的次数,并将统计结果存入ct所指的数组中。
1 #include <stdio.h> 2 #include <string.h> 3 #pragma warning (disable:4996) 4 void fun(char*sp ,int *ct) 5 { 6 int a=0, b=0, c=0; 7 while (*sp != '\0') 8 { 9 if (*sp == 'e')//利用if多重并列判断。 10 { 11 sp++; 12 if (*sp == 'a') 13 { 14 a++; 15 //sp--; 16 } 17 } 18 else if (*sp == 'o') 19 { 20 sp++; 21 if (*sp == 'u') 22 { 23 b++; 24 //sp--; 25 } 26 } 27 else if (*sp == 'i') 28 { 29 sp++; 30 if (*sp == 'u') 31 { 32 c++; 33 //sp--; 34 } 35 } 36 else//这一步很关键,切记。 37 { 38 sp++; 39 } 40 } 41 ct[0] = a; 42 ct[1] = b; 43 ct[2] = c; 44 } 45 main() 46 { void NONO(); 47 char txt[200]="abeaeafeeaoukgdoouuoiouifwieeotiu"; 48 int c[3]; 49 fun(txt,c); 50 printf("%d,%d,%d\n",c[0],c[1],c[2]); 51 NONO(); 52 } 53 void NONO () 54 {/* 请在此函数内打开文件,输入测试数据,调用 fun 函数,输出数据,关闭文件。 */ 55 FILE *rf, *wf ; 56 int i, c[3] ; 57 char txt[200], *p ; 58 59 rf = fopen("in.dat","r") ; 60 wf = fopen("out.dat","w") ; 61 for(i = 0 ; i < 10 ; i++) { 62 fgets(txt, 200, rf) ; 63 p = strchr(txt, '\n') ; 64 if(p != NULL) *p = 0 ; 65 fun(txt,c); 66 fprintf(wf, "%d,%d,%d\n",c[0],c[1],c[2]); 67 } 68 fclose(rf) ; fclose(wf) ; 69 }
//在数组中找出最小值,并与第一个元素交换位置。
1 #include<stdio.h> 2 #pragma warning (disable:4996) 3 void fun(int *dt,int n) 4 { 5 int i,m,t; 6 /**********************found***********************/ 7 m = 0;//注意下标与数组两种方式的转换。 8 for(i=1;i<n;i++) 9 /**********************found***********************/ 10 if(dt[i]<dt[m]) 11 m=i; 12 t=dt[0]; 13 /**********************found***********************/ 14 dt[0] = dt[m]; 15 dt[m]=t; 16 } 17 main() 18 { 19 int a[10]={ 30,20,15,64,85,28 }; 20 int i,n=6; 21 for(i=0;i<n;i++) 22 printf("%4d",a[i]); 23 printf("\n"); 24 fun(a,n); 25 for(i=0;i<n;i++) 26 printf("%4d",a[i]); 27 printf("\n"); 28 }