Designed by 邱宇
加载资源 ......
加载资源【四级小饶同学的干啥啥不行干饭第一名】完成。
加载资源【胖胖叶小胖的《PHP网站开发实例教程》】完成。
加载资源【不好吃不要钱的人美歌甜情商高】完成。
加载资源【赵老板浩哥的人美歌甜情商高】完成。
加载资源【不潮不用花钱的黄瓜味的乐事大包薯片】完成。
加载资源【赵老板浩哥的干啥啥不行干饭第一名】完成。
加载资源【天籁之音丁广博的人美歌甜情商高】完成。
加载资源【土豪鹏子哥的一次性无纺布防护口罩】完成。
加载资源【买到就是赚到的一次性无纺布防护口罩】完成。
加载资源【赵老板浩哥的华园侧路大铁门】完成。
加载资源【天籁之音丁广博的黄瓜味的乐事大包薯片】完成。

C语言练习题【2】

复制代码
  1 #include <stdio.h>
  2 #include <string.h>
  3 #include <math.h>
  4 #include <ctype.h>
  5 #define N 20
  6 int main()
  7 {
  8 //调试下列程序,使之具有如下功能:输入10个整数,按每行3个数输出这些整数,最后输出10个整数的平均值。写出调试过程。
  9 #if(0)
 10     int a[N] ,i , sum = 0;
 11     printf("input 10 integer\n");
 12     for ( i = 0; i < N; i++)
 13     {
 14         scanf("%d",&a[i]);
 15     }
 16     for ( i = 0; i < N; i++)
 17     {
 18         sum += a[i];
 19         if(i % 3 == 0) printf("\n");
 20         printf("%3d",a[i]);
 21     }
 22     printf("\n");
 23     printf("\n");
 24     printf("10 integer average is %f",sum / 10.0);
 25 #endif
 26 //有一个3行4列的距阵,现要求编程求出其中最大的那个元素的值,以及它所在的行号与列号。下面程序的初始说明和输出语句如下所示,请补充完成该程序。
 27 #if(0)
 28  int i , j ,row ,colum ,max;
 29  static int a[3][4] = {{1,2,3,4},{9,8,7,6},{-10,10,-5,2}};
 30 
 31  max = a[0][0] ;
 32 
 33  for ( i = 0; i < 3; i++)
 34  {
 35      for ( j = 0; j < 4; j++)
 36      {
 37          if(a[i][j] > max) {max = a[i][j] ,row = i , colum = j };
 38      }
 39  }
 40 
 41 
 42 
 43 
 44  printf("Max = %d, Row = %d , Colum = %d \n",max,row+1,colum+1);
 45 #endif
 46  //数组中已存互不相同的10个整数,从键盘输入一个整数,输出与该值相同的数组元素下标。
 47 #if(0)
 48  int i,x,a[10]={1,2,3,4,5,6,7,8,9,10};
 49  printf("input search num:");
 50  scanf("%d",&x);
 51  for ( i = 0; i < 10; i++)
 52  {
 53      if(a[i] == x) break;
 54  }
 55  if(i < 10) printf("该元素的下标为%d\n",i); 
 56  else printf("该数组没有%d\n",x);
 57 #endif
 58 
 59 #if(0)
 60 int i, k, x,a[5]={1,3,5,7} ;
 61  scanf("%d",&x);
 62 for ( k=4; k>0; k-- )     /* 从后向前比较 */
 63     if ( a[k-1] > x )
 64          a[k] = a[k-1]; /* 将大数向后移动 */
 65     else   break;         /* 找到插入的位置,退出 */
 66     a[k] = x;             /* 完成插入操作 */
 67     for (i=0; i<5; i++)     
 68         printf("%4d", a[i]);
 69     return 0;
 70 #endif //有一个已排好序的数组,今有一个数,要求按原来排序的规律将它插入数组(从小到大排列)中。
 71 
 72 //任意输入10个任意输入10个整数的数列,先将整数按照从大到小的顺序进行排序,然后输入一个整数插入到数列中,使数列保持从大到小的顺序
 73 #if(0)
 74     int i ,j ,x ,temp , a[11];
 75     printf("输入十个整数:\n");
 76     for ( i = 0; i < 10; i++)
 77     {
 78         scanf("%d",&a[i]);
 79     }
 80     for ( i = 0; i < 9; i++)
 81     {
 82         for ( j = 0; j < 9 - i; j++)
 83         {
 84             if(a[j]<a[j+1])
 85             {
 86                 temp = a[j];
 87                 a[j] = a[j+1];
 88                 a[j+1] = temp;
 89             }
 90         }
 91     }
 92     printf("输入要插入的整数:\n");
 93     scanf("%d",&x);
 94     for ( i = 9; i >= 0 ; i--)
 95     {
 96         if( a[i] < x )
 97         {
 98           a[i+1] = a[i];
 99         }else break;
100         a[i] = x;
101     }
102     for ( i = 0; i < 11; i++)
103     {
104         printf("%3d",a[i]);
105     }
106 #endif
107 
108 //输入十个互不相同的整数并存在数组中,找出最大元素,并删除
109 #if(0)
110     int a[10] , i , j  , max;
111     printf("请输入十个互不相同的整数\n");
112     for ( i = 0; i < 10; i++)
113     {
114         scanf("%d",&a[i]);
115     }
116 
117     max = a[0];
118     for ( i = 1; i < 10; i++)
119     {
120         if(a[i]>max) {max = a[i] ,j = i; }
121     }
122     for ( i = j; i < 10; i++)
123     {
124         a[i] = a[i+1];
125     }
126     for ( i = 0; i < 9; i++)
127     {
128         printf("%3d",a[i]);
129     }
130 #endif
131 
132 //从键盘上输入若干个学生的成绩,统计计算出平均成绩,并输出低于平均分的学生成绩,用输入负数结束输入
133 #if(0)
134 float x[1000] , sum = 0.0 , ave ,a;
135 int n = 0 , i;
136 printf("Enter mark :\n");
137 scanf("%f",&a);
138 while (a>=0.0 && n<1000)
139 {
140     sum += a;
141     x[n] = a;
142     n++;
143     scanf("%f",&a);
144 }
145 ave = sum / n;
146 
147 printf("Output:\n");
148 printf("ave = %f\n",ave);
149 for ( i = 0; i < n; i++)
150 {
151     if(x[i]<ave) printf("%f\n",x[i]);
152 }
153 #endif
154 
155 //打印如下杨辉三角形
156 #if(0)
157 //int a[6][6] , i , j;
158 //for ( i = 0; i < 6; i++)
159 //{
160 //    a[i][0] = 1;
161 //    a[i][i] = 1;
162 //}
163 //for ( i = 1; i < 6; i++)
164 //{
165 //    for ( j = 1; j <= i-1; j++)
166 //    {
167 //        a[i][j] = a[i-1][j] + a[i-1][j-1];
168 //    }
169 //}
170 //for ( i = 0; i < 6; i++)
171 //{
172 //    for ( j = 0; j < i +1; j++)
173 //    {
174 //        printf("%3d",a[i][j]);
175 //    }
176 //    printf("\n");
177 //}
178 //int a[6][6] , i , j;
179 //for ( i = 0; i < 6; i++)
180 //{
181 //    for ( j = 0; j <= i; j++)
182 //    {
183 //            if(j == i || j == 0)
184 //                a[i][j] = 1;
185 //            else
186 //                a[i][j] = a[i-1][j] + a[i-1][j-1];
187 //    }
188 //}
189 //for ( i = 0; i < 6; i++)
190 //{
191 //    for ( j = 0; j <= i; j++)
192 //    {
193 //        printf("%3d",a[i][j]);
194 //    }
195 //    printf("\n");
196 //}
197 #endif
198 
199 #if(1)
200 //int a[10] , *p , *q , temp;
201 //for ( p = a; p < a+10; p++)
202 //{
203 //    scanf("%d",p);
204 //}
205 //for ( p = a , q = a + 9; p < q; p++,q--)
206 //{
207 //    temp = *p , *p = *q , *q = temp;
208 //}
209 //for ( p = a; p < a+10; p++)
210 //{
211 //    printf("%4d",*p);
212 //}
213 
214 
215 char a[] = "abcdefg" , *p , *q ,temp;
216 int m;
217 m = strlen(a);
218 for ( p = a , q = a+m-1; p < q; p++ ,q--)
219 {
220     temp = *q , *q = *p ,*p = temp;
221 }
222     puts(a);
223 
224 #endif        //逆序输出整数数组 和 字符数组
225 
226 #if(0)
227 char a[10] , b[10] ,c[10];
228 printf("请输入两个字符串:\n");
229 gets(a);
230 gets(b);
231 if(strlen(a) < strlen(b) )
232 {
233     strcpy(c,a),strcpy(a,b),strcpy(b,c);
234 }    
235     puts(a);
236     puts(b);
237 #endif    //把较短的字符串放在a数组,较长的字符串放在b数组。并输出
238 
239 #if(0)
240     char s1[80] , s2[40];
241     int i = 0 , j = 0;
242     gets(s1);
243     gets(s2);
244     /*字符串复制*/
245     //while ((s1[i++] = s2[j++]) != '\0');
246     //puts(s1);
247     /*字符串拼接*/
248     while (s1[i] != '\0') i++;
249     while ((s1[i++] = s2[j++]) != '\0');
250     s1[i] = '\0';
251     puts(s1);
252 #endif    //字符串复制 和 字符串拼接
253 
254 #if(0)
255     char a[10], b[10];
256     int m;
257     int i;
258     gets(a);
259     gets(b);
260     for ( i = 0; a[i] != '\0' && b[i] != '\0' ; i++)
261     {
262         if(a[i] == b[i]) continue;
263         else
264         {
265             m = a[i] - b[i];
266             break;
267         }
268     }
269     printf("%d\n",m);
270 #endif    //输入的两个字符串进行比较,然后输出两个字符串中第一个不相同字符的ASCII码之差
271 
272 #if(0)
273 int num[26],i;
274 char c;
275 for ( i = 0; i < 26; i++)
276 {
277     num[i] = 0;
278 }
279 while ((c = getchar()) != '#')
280 {
281     if(isupper(c)) num[c-65] += 1;
282 }
283 for ( i = 0; i < 26; i++)
284 {
285     if(num[i])
286         printf("%c:%d\n",i+65,num[i]);
287 }
288 #endif    //使其的功能是统计从终端输入字符中每个大写字母的个数。用#号作为输入结束标志
289 
290 #if(0)
291 //char a[10];
292 //int i;
293 //gets(a);
294 //for ( i = 0; a[i]!= '\0'; i++)
295 //{
296 //    if(a[i]>'0')
297 //     printf("%d",a[i]-'0');
298 //    else
299 //     printf("-");
300 //    continue;
301 //}
302 
303 int m , a[10], j = 0 , i;
304 char b[10];
305 scanf("%d",&m);
306 do
307 {
308      a[j] = m % 10;
309      m = m / 10;
310      j++;
311 } while (m);
312 
313 for ( i = j; i >= 0; i--)
314 {
315     printf("%c",a[i-1]+'0');
316 }
317 #endif  //字符串转数字 和 数字转字符串
318 
319 
320 
321 /*************************************************************指针*********************************/
322 #if(0)
323 int a[5] = {1,2,3,4,5} , b[5] = {6,7,8,9,10} , c[5], *p , i;
324 p = c;
325 for ( i = 0; i < 5; i++)
326 {
327     *(p+i) = a[i];
328     a[i] = b[i];
329     b[i] = *(p+i);
330 }
331 for ( i = 0; i < 5; i++)
332 {
333     printf("%3d",a[i]);
334     
335 }
336 printf("\n");
337 for ( i = 0; i < 5; i++)
338 {
339     printf("%3d",b[i]);
340 }
341 #endif    //使用指针实现交换数组a和数组b
342 
343 #if(0)
344 //void sort123(int *p , int n);
345 //int a[10] = {1,2,3,4,5,6,7,8,9,10},*p,t,i,j;
346 //p = a;
347 //sort123(a,10);
348 //for ( p = a; p < a+10; p++)
349 //{
350 //    printf("%3d",*p);
351 //}
352     char *day[ ] = {"Monday","Tuesday","Wednesday","Thursday","Friday","Saturday","Sunday"};
353     //int today;
354     //printf("今天是星期");
355     //scanf("%d", &today);
356     char **today = day;
357     int i;
358     for ( i = 0; i < 7; i++)
359     {
360         printf("%s",*(day + i));
361     }
362     //switch (today)
363     //{
364     //case 1:
365     //case 2:
366     //case 3:
367     //case 4:
368     //case 5:
369     //case 6:
370     //case 7:
371     //    printf("%s",day[today-1]);
372     //    break;
373     //}
374 #endif
375 
376 #if( 0 )
377     int a[3][4] = {{0,1,2,3},{4,5,6,7},{8,9,10,11}};
378     int (*p)[4];
379     int i,j;
380     p = a;
381     do
382     {
383     printf("i = ");
384     scanf("%d",&i);
385     } while (i >= 3 || i < 0);
386     do
387     {
388     printf("j = ");
389     scanf("%d",&j);
390     } while (j >= 4 || j < 0);
391 
392     printf("a[%d][%d] = %d",i,j,*(*(p+i)+j));
393 #endif    //通过输入指定行数和列数打印出对应的值
394 
395 #if(0)
396 //int a[10],max,min,i,t,*p;
397 //for ( p = a; p < a + 10; p++)
398 //{
399 //    scanf("%d",p);
400 //}
401 //max = min = 0;
402 //p = a;
403 //for ( i = 0; i < 10; i++)
404 //{
405 //    if(*(p+i)>*(p+max))  max = i;
406 //
407 //}
408 //t = *p, *p = *(p+max), *(p+max) = t;
409 //for ( i = 0; i < 10; i++)
410 //{
411 //    if(*(p+i)<*(p+min)) min = i;
412 //}
413 //t = *(p+9), *(p+9) = *(p+min), *(p+min) = t;
414 //for ( p = a; p < a + 10; p++)
415 //{
416 //    printf("%3d",*p);
417 //}
418     /*int a[10] , *p , i , max = 0 , min = 0 , t , k;
419     p = a;
420     for ( i = 0; i < 10; i++)
421     {
422         scanf("%d",p+i);
423     }
424     for ( i = 0; i < 10; i++)
425     {
426         if(*(p+max)<*(p+i)) max = i;
427         else if(*(p+min)>*(p+i)) min = i;
428 
429     }
430     t =*p;
431     *p = *(p+max);
432     *(p+max) = t;
433     k =*(p+9);
434     *(p+9)= *(p+min);
435     *(p+min) = k;
436     for ( i = 0; i < 10; i++)
437     {
438         printf("%3d",a[i]);
439     }*/
440 #endif    //用指针最大的数和第一个数交换,最小的数最后一个数交换
441 
442 //int a[10] , *p , i , j ,m;
443 //
444 //for ( p = a; p < a+10; p++)
445 //{
446 //    scanf("%d",p);
447 //}
448 //p = a;
449 //j = 10 - 1 / 2;
450 //for ( p = a + 9; p < p + j; p--)
451 //{
452 //
453 //}
454 /*************************************************************指针*********************************/
455 #if(0)
456 int x , a[5] , i = 0  , j;
457 scanf("%d",&x);
458 while (x)
459 {
460      a[i] = x % 10;
461      x = x / 10;
462      i++;
463 }
464 printf("total is %d\n",i);
465 for ( j = 0; j < i; j++)
466 {
467     printf("%3d",a[j]);
468 }
469 #endif    //输入一个不多于五位数的正整数,判断它是几位,并逆序输 出各位数字。
470 
471 //编写一个程序,将将两个字符串连接起来,不能使用 strcat 函数。
472 
473 #if(0)
474 int a[N] = {1,1} , i;
475 for ( i = 2; i < N; i++)
476 {
477     a[i] += a[i -1] + a[i-2];
478 }
479 for ( i = 0; i < N; i++)
480 {
481     printf("%5d",a[i]);
482 }
483 
484 #endif    //斐波拉契
485 
486 #if(0)
487         int m , i , k , n = 0;
488         for ( m = 2; m <= 500; m++)
489         {
490             k = (int)sqrt((double)m);
491             for ( i = 2; i <= k; i++)
492             {
493                 if(m % i == 0) break;
494             }
495             if ( i > k ) 
496             {printf("%4d",m); n = n+1; if(n%5==0) printf("\n");}
497         }
498                 printf("total is %d",n);
499 #endif  //打印500以内的素数
500 
501 #if(0)
502 //辗转相除法
503 //int a,b,t;
504 //scanf("%d %d",&a,&b);
505 //while (b != 0)
506 //{
507 //    t = a % b;
508 //    a = b;
509 //    b = t;
510 //}
511 //printf("最大公约数是%d",a);
512 
513 //更相减损法
514 //int a,b,t;
515 //scanf("%d %d",&a,&b);
516 //while (a != b)
517 //{
518 //    if(a>b) 
519 //    {
520 //        a -= b;
521 //    }else
522 //    {
523 //        b -= a;
524 //    }
525 //}
526 //printf("最大公约数是%d",a);
527 
528 //int x, y, gcd;
529 //    printf("请输入两个正整数:");
530 //    scanf("%d%d", &x, &y);
531 //    if(x < y)
532 //        gcd = x;
533 //    else
534 //        gcd = y;
535 //    while(x % gcd ||y % gcd)
536 //        gcd--;
537 //    printf("gcd = %d\n", gcd);
538 
539 //int a , b , i , t;
540 //scanf("%d %d",&a,&b);
541 //for ( i = 1; i <= a || i <= b; i++)
542 //{
543 //    if(    a % i == 0 && b % i == 0 ) t = i;
544 //}
545 //    printf("%d",t);
546 
547 //递归
548 
549 int gcd1(int x , int y);
550 int a,b,result;
551 scanf("%d %d",&a,&b);
552 result = gcd1(a,b);
553 printf("最大公约数%d",result);
554 #endif //最大公约数
555 
556 #if(0)
557 int a[5] = {12,18,1,0,6} , min , max, i , j , k , t; 
558 max = min = a[0];
559 
560 for ( i = 0; i < 5; i++)
561 {
562     if(a[i]<min)
563     { min = a[i] , k = i;}
564     else if(a[i]>max)
565     {
566         max = a[i] , j = i;
567     }
568 }
569 //t = a[4];
570 //a[4] = a[k];
571 //a[k] = t;
572 //
573 //t = a[0];
574 //a[0] = a[j];
575 //a[j] = t;
576 a[k] = max;
577 a[j] = min;
578 for ( i = 0; i < 5; i++)
579 {
580     printf("%3d",a[i]);
581 }
582 #endif  //最大值和最小值的位置进行调换
583 
584 #if(0)
585 int i , j ,temp ,a[5];
586 int hight , low , mid , nummber;
587 hight = 4;
588 low = 0;
589 for ( i = 0; i < 5; i++)
590 {
591     scanf("%d",&a[i]);
592 }
593 for ( i = 0; i < 4; i++)
594 {
595     for ( j = 0; j < 4 - i; j++)
596     {
597         if(a[j+1]>a[j])
598         {
599             temp = a[j];
600             a[j] = a[j+1];
601             a[j+1] = temp;
602         }
603     }
604 }
605 
606 printf("数组元素的值为:\n");
607 for ( i = 0; i < 5; i++)
608 {
609     printf("%3d",a[i]);
610 }
611 printf("请输入要查找的数\n");
612 scanf("%d",&nummber);
613 if((nummber > a[0])||(nummber < a[4]))
614     printf("cannot find %d\n",nummber);
615 else
616 {
617     while (low <= hight)
618     {
619         mid = (low+hight)/2;
620         if(a[mid] == nummber)
621         {printf("This number %d is find, position is %d\n",mid+1,nummber); break;}
622         else if(nummber>a[mid]) low = mid + 1;
623         else hight = mid -1;
624     }
625         if(a[mid] != nummber) 
626         printf("Not found this number %d\n",nummber);
627 }
628 #endif   //二分法求位置
629 
630 #if(0)
631     int a[10] ,i , j , k , max ,temp, b[9];
632     max = a[0];
633     for ( i = 0; i < 10; i++)
634     {
635         scanf("%d",&a[i]);
636             for ( j = 0; j < i ; j++)
637             {
638                 while (a[i] == a[j])
639                 {
640                     printf("请重新输入\n");
641                     scanf("%d",&a[i]);
642                 }
643             }
644     }
645     for ( i = 0; i < 9; i++)
646     {
647         for ( j = 0; j < 9; j++)
648         {
649             if(a[j]>a[j+1]) 
650             {
651                 temp = a[j];
652                 a[j] = a[j+1];
653                 a[j+1] = temp;
654             }
655         }
656     }
657     printf("最大值是%d\n",a[9]);
658     printf("删除后的数组元素是:\n");
659     for ( i = 0; i < 9; i++)
660     {
661         b[i] = a[i];
662         printf("%3d",b[i]);
663     }
664 #endif     //输入10个互不相同的实数并存到数组,找出最大值,并删除
665 
666 #if(0)
667     int a[4] = {1,3,5,10}, b[5] = {2,4,6,8,9}, c[1000] , i = 0, j = 0 , k=0;
668 
669 
670         while (j < 4 || k < 5 || i<9)
671         {
672             if(a[j] < b[k]) 
673             {    c[i] = a[j]; }
674             else
675             {
676                 c[i] = b[j]; 
677             }
678             j++ , k++ , i++;
679         }
680     
681 
682     
683     for ( i = 0; i < 9; i++)
684     {
685         printf("%3d",c[i]);
686     }
687 #endif
688 
689 #if(0)
690     //int a[10],i,j,t;
691     //printf("Please input 10 numbers: ");
692     //for(i=0;i<10;i++)
693     //scanf("%d",&a[i]);
694     //for(i=1;i<10;i++) /*外循环控制趟数,n个数从第2个数开始到最后共进行n-1次插入*/
695     //{
696     //t=a[i]; /*将待插入数暂存于变量t中*/
697     //for( j=i-1 ; j>=0 && t<a[j] ; j-- ) /*在有序序列(下标0 ~ i-1)中寻找插入位置*/
698     //a[j+1]=a[j]; /*若未找到插入位置,则当前元素后移一个位置*/
699     //a[j+1]=t; /*找到插入位置,完成插入*/
700     //}
701     //printf("The sorted numbers: ");
702     //for(i=0;i<10;i++)
703     //printf("%d ",a[i]);
704     //printf("\n");
705     //int a[5] = {1,3,5,2,4} , i , j ,k, temp;
706     //for ( i = 1; i <= 5; i++)
707     //{
708     //    for ( j = 0; j < 5 - i; j++)
709     //    {
710     //        if(a[j+1]<a[j])
711     //        {
712     //            temp = a[j];
713     //            a[j] = a[j+1];
714     //            a[j+1] = temp; 
715     //        }
716     //    }
717     //}
718     //for ( i = 0; i < 5; i++)
719     //{
720     //    printf("%3d",a[i]);
721     //}
722 
723 
724     //for ( i = 0; i < 4; i++)
725     //{
726     //     k = i;
727     //    for ( j = i + 1; j < 5; j++)
728     //    {
729     //        if(a[k] > a[j] ) k = j;
730     //    }
731     //    if(k!=i)
732     //    {
733     //        temp = a[i];
734     //        a[i] = a[k];
735     //        a[k] = temp;
736     //    }
737     //}
738     //for ( i = 0; i < 5; i++)
739     //{
740     //    printf("%3d",a[i]);
741     //}
742 
743     //for ( i = 1; i < 5; i++)
744     //{
745     //    temp = a[i];
746     //    for ( j = i - 1; j >=0 && a[j] > temp; j--)
747     //    {
748     //        a[j+1] = a[j];
749     //        a[j] = temp;
750     //    }
751     //}
752     //for ( i = 0; i < 5; i++)
753     //{
754     //    printf("%3d",a[i]);
755     //}
756 #endif  //排序
757 
758     //char *a[2] = {"one","two"},**p = a;
759     //printf("%s\n",*(p++)+1);
760     //printf("%c\n",**p-1);
761 #if(0)
762     char str[N][10] , max[10];
763     int i , n;
764     printf("total input string is :");
765     scanf("%d",&n);
766     getchar();            //吃掉缓存区的回车字符
767     for ( i = 0; i < n; i++)
768     {
769         gets(str[i]);
770 
771     }
772         strcpy(max,str[0]);
773     for ( i = 1; i < n; i++)
774     {
775         if(strcmp(str[i],max)>0) strcpy(max,str[i]);
776     }
777     printf("最大的字符串是%s",max);
778 #endif        //用二维数组求最大字符串
779 
780 #if(0)
781     char st[10],cs[][10] ={"Monday","Tuseday","Wednesday","Thursday","Friday","Saturday","Sunday"} ,i ,k ,j;
782     for ( i = 0; i < 6; i++)
783     {
784           k = i;
785           for ( j = i + 1 ; j < 7; j++)
786           {
787               if(strcmp(cs[k],cs[j])>0) k = j;
788           }
789           if(k != i)
790           {
791               strcpy(st,cs[i]); strcpy(cs[i],cs[k]); strcpy(cs[k],st);
792           }
793     }
794     for ( i = 0; i < 7; i++)
795     {
796         puts(cs[i]);
797     }
798 #endif        //将二维字符数组储存的字符串按从小到大顺序排序并且输出这些字符串
799 
800 #if(0)
801     int a[3][4] =  {1,2,3,4,5,6,7,8,9,10,11,12};
802     int *pa[3] = {a[0],a[1],a[2]};
803     int i , j;
804     for ( i = 0; i < 3; i++)
805     {
806         for ( ;pa[i] <a[i+1]; pa[i]++)   //p
807         {
808             printf("%d\t",*pa[i]);
809         }
810         printf("\n");
811     }
812 #endif    //通过一个指针数组来指向一个二维数组,指针数组中的每个元素被赋予二维数组每一行的首地址
813 
814 #if(0)
815     char *w[] = {"Monday","Tuseday","Wednesday","Thursday","Friday","Saturday","Sunday"};
816     char *st;
817     int i , j ,k;
818     printf("排序前的字符串地址,字符串的值如下:\n");
819     for ( i = 0; i < 7; i++)
820     {
821         printf("%s\n",w[i]);
822     }
823     for ( i = 0; i < 7; i++)
824     {
825         k = i;
826         for ( j = i+1; j < 7; j++)
827         {
828             if(strcmp(w[j],w[k])<0) k = j;
829         }
830         if(k!=i)
831         {
832             st = w[i]; w[i] = w[k]; w[k] = st;
833         }
834     }
835     printf("排序后的字符串地址,字符串的值如下:\n");
836     for ( i = 0; i < 7; i++)
837     {
838         printf("%s\n",w[i]);
839     }
840 #endif    //将字符指针数组存储的字符串按从小到大的顺序排序且输出
841 
842 #if(0)
843     int i , m , n;
844     for ( i = 1; i < 99; i++)
845     {
846         m = i*i;
847         if(i<10)
848         {
849             n = m % 10;
850             if(n == i) printf("%2d %2d \n",m,i);
851         }else
852         {
853             n = m % 100;
854             if(n == i) printf("%2d %2d \n",m,i);
855         }
856     }
857 #endif    //同构数
858     
859     //int a[3] = {1,3,12} ,b[5] = {2,4,5,9,7} , c[10] , i = 0 , j = 0 ,k = 0;
860     //while (i<3 && j<5)
861     //{
862     //    if(a[i]<b[j]) { c[k] = a[i]; k++; i++;}
863     //    else
864     //    {
865     //         c[k] = b[j]; k++; j++;
866     //    }
867     //}
868     //while(i<3) { c[k] = a[i]; k++; i++;}
869     //while(j<5) {c[k] = b[j]; k++; j++;}
870     //for ( i = 0; i < k; i++)
871     //{
872     //    printf("%3d",c[i]);
873     //}
874 
875 #if(0)
876     char a[80];
877     int mystrlen(char *a) , length;
878     gets(a);
879     length = mystrlen(a);
880     printf("%d",length);
881 #endif        //自定义字符串长度函数
882 
883 #if(0)
884     char a[10] , b[10];
885     void mystrcpy(char *p1 , char *p2);
886     gets(a);
887     gets(b);
888     mystrcpy(a,b);
889     puts(a);
890 #endif        //自定义字符串复制函数
891 
892     //int i , j , a[6][6];
893     //for ( i = 0; i < 6; i++)
894     //{
895     //    for ( j = 0; j <= i; j++)
896     //    {
897     //        if(i<=1)  a[i][j] = 1;
898     //        else
899     //        {
900     //            if(i == 0 || i == j)  a[i][j] = 1;
901     //            if(j > 0 && i > j)
902     //            {
903     //                 a[i][j] = a[i-1][j]+a[i-1][j-1];
904     //            }
905     //        }
906     //    }
907     //}
908     //for ( i = 0; i < 6; i++)
909     //{
910     //    for ( j = 0; j <= i; j++)
911     //    {
912     //        printf("%d",a[i][j]);
913     //    }
914     //    printf("\n");
915     //}
916     
917 }
918 int gcd1(int x , int y)
919 {
920     if( x % y == 0) return y;
921     else return gcd1(y, x % y);
922 }
923 
924 int mystrlen(char *p)
925 {
926     int i , length = 0;
927     //for ( i = 0; *(p+i) != '\0'; i++)      //*(p+i) 或 p[i]
928     //{
929     //    length++;
930     //}
931     while (*p++!='\0')
932     {
933         length++;
934     }
935     return length;
936 }
937 
938 void mystrcpy(char *p1 , char *p2)
939 {
940     int i = 0;
941     while (p2[i] != '\0')
942     {
943         p1[i] = p2[i];
944         i++;
945     }
946     p1[i] = '\0'; 
947     //while ((*p1++ = *p2++)!= '\0');
948 
949 }
950 
951 void sort123(int *p , int n)
952 {
953     //int i , j , t;
954     //for ( i = 0; i < n-1; i++)
955     //{
956     //    for ( j = 0; j < n-i-1; j++)
957     //    {
958     //        if(a[j]<a[j+1])
959     //        {
960     //           t = a[j];
961     //           a[j] = a[j+1];
962     //           a[j+1] = t;
963     //        }
964     //    }
965     //}
966 
967     int i ,j ,t;
968     for ( i = 0; i < n-1; i++)
969     {
970         for ( j = 0; j < n-i-1; j++)
971         {
972             if(*(p+j)<*(p+j+1))
973             {
974                 t = *(p+j);
975                 *(p+j) = *(p+j+1);
976                 *(p+j+1) = t;
977             }
978         }
979     }
980 }
复制代码

 

posted @   godsaury  阅读(490)  评论(0编辑  收藏  举报
编辑推荐:
· 开发者必知的日志记录最佳实践
· SQL Server 2025 AI相关能力初探
· Linux系列:如何用 C#调用 C方法造成内存泄露
· AI与.NET技术实操系列(二):开始使用ML.NET
· 记一次.NET内存居高不下排查解决与启示
阅读排行:
· Manus重磅发布:全球首款通用AI代理技术深度解析与实战指南
· 被坑几百块钱后,我竟然真的恢复了删除的微信聊天记录!
· 没有Manus邀请码?试试免邀请码的MGX或者开源的OpenManus吧
· 园子的第一款AI主题卫衣上架——"HELLO! HOW CAN I ASSIST YOU TODAY
· 【自荐】一款简洁、开源的在线白板工具 Drawnix
点击右上角即可分享
微信分享提示