鱼C论坛

 找回密码
 立即注册
查看: 4451|回复: 0

跪求C例题算法,适合学生的,急用!!!谢谢了!!!

[复制链接]
发表于 2012-10-26 23:14:10 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能^_^

您需要 登录 才可以下载或查看,没有账号?立即注册

x
一个星期之后就要参加ITAT复赛了,就连我这么坑爹的都能进入复赛,真是坑爹中的坑爹!!!在下面三个题我就会一道,而且做了好久,请好心人帮我看看吧!!!谢谢了!!!
下面是网站,大家帮忙看看有没有相关例题,算法什么的,发链接或邮箱394428311·qq.com,谢谢了!!!
http://www.itatedu.com/itatCompete/compete7/files6/lnst_c2.htm
下面是我自己做的从一组数中删除n个数字,应该是对的吧!如有不对,帮忙指正一下,灰常感谢!!!
  1. #include <stdio.h>
  2. #include <string.h>

  3. void f(char *a, int len, int n)                        //数组,长度,删除个数
  4. {
  5.     int i, t, max, time = 0;                        //time记录while执行次数
  6.    
  7.     /*由于每次确定一个max,下标后移一位所以time至关重要!!!*/
  8.    
  9.     while(n)                                                        //直到n个删除完
  10.     {
  11.         if(time == len-n)                                //比如a=987654321,n=5;执行到9876,也就是len-n,删除54321
  12.         {
  13.             for(i = len-n; i < 100; i++)
  14.             {
  15.                 a[i]='\0';                                //len-n后面填充'\0'
  16.             }
  17.             break;                                                //执行结束,退出
  18.         }
  19.         
  20.         max = a[time];                                        //假定max为a[0],第二次a[1],第三次a[2]...
  21.         t = time;                                                //max下标
  22.         for(i = time; i <= time+n; i++)        //从前n+1位求出max
  23.         {
  24.             if(a[i] > max)
  25.             {
  26.                 max = a[i];
  27.                 t = i;                                        //max下标
  28.             }
  29.         }
  30.         n = n+time-t;                                        //注意time!!!
  31.         for(i = time; a[i++] = a[t++];)        //去年max前面所有的数字
  32.         {
  33.             ;
  34.         }
  35.         time++;                                                        //每次确定一个max,下标后移一位
  36.     }
  37. }

  38. main()
  39. {
  40.     char a[100];
  41.     int n, len;
  42.     gets(a);
  43.     len = strlen(a);
  44.     scanf("%d", &n);
  45.     f(a, len, n);
  46.     puts(a);
  47. }
复制代码
小甲鱼最新课程 -> https://ilovefishc.com
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|手机版|Archiver|鱼C工作室 ( 粤ICP备18085999号-1 | 粤公网安备 44051102000585号)

GMT+8, 2025-11-16 00:35

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表