cfree吧 关注:693贴子:2,355
  • 11回复贴,共1

吧内那么冷清,我就发点我写的个人小程序来活跃一下

取消只看楼主收藏回复

详见二楼?


IP属地:浙江1楼2013-06-26 19:54回复

    这是快速排序法,本人小白,只能教一些比我小白的小白,大神看了请一笑了之。
    我在main函数里面添加了计算时间的代码,大家可以验证一下所需要的时间,
    另外,时间代码其实相对于实际来说非常有用,比如你可以用时间代码给自己写一个行程计划。 这回帖换行有问题···不知道咋搞
    #include "stdio.h"
    #include "stdlib.h"
    #include "time.h"
    #define true 1
    #define max 20
    void swap(int *a,int *b){int c;c=*a; *a=*b; *b=c;}
    int partition_sort(int a[],int p,int r);
    void quick_sort(int a[],int p,int r)
    {if(p<r) { int q;q=partition_sort(a,p,r);quick_sort(a,p,q-1);quick_sort(a,q+1,r);}}
    int partition_sort(int a[],int p,int r){int i=p,j=r+1;int x=a[p];while(true){while(a[++i]<x&&i<j);while(a[--j]>x);if(i>=j)break;swap(&a[i],&a[j]);}a[p]=a[j];a[j]=x;return j;}
    main(){clock_t start,finish;double totaltime;start=clock();
    int a[max];int i,p=0,r=max-1;srand(time(NULL));for(i=0;i<max;i++)a[i]=rand()%100;quick_sort(a,p,r);for(i=0;i<max;i++)printf("%d\t",a[i]);printf("\n");
    finish=clock();totaltime=(double)(finish-start)/CLOCKS_PER_SEC; printf("%lf",totaltime);}


    IP属地:浙江2楼2013-06-26 19:59
    回复
      发一些趣味程序。 代码内容结构虽然大同小异,但是纯人工手打,里面夹杂了不少在本人新手的时候的很多想法。笑纳
      这是打出 sin图像
      #include <stdio.h>
      #include <math.h>
      main()
      {int i,j,k,a; double y; y=1.0;a=10*asin(y); for(;y>=-1.0;y-=0.1) {k=fabs(10*asin(y)); if(y>=0) {for(i=0;i<k;i++) printf(" "); printf("*"); for(i=0;i<2*fabs(k-a);i++) printf(" "); printf("*\n");} else{for(i=0;i<k+a*2;i++)printf(" "); printf("*"); for(i=0;i<2*fabs(k-a);i++)printf(" "); printf("*\n"); } } }
      我也搞不懂这换行到底咋回事,排版什么的如果你们有兴趣,就复制过去自己排一下····


      IP属地:浙江3楼2013-06-26 20:03
      回复
        绘制圆, 我下载的绘制圆是用 for语句, 我自己是用if加for语句绘制的,适合给新新新手打开更开括的思维空间。
        #include <stdio.h>
        #include<math.h>
        main()
        {int i,j;float y;for(y=10;y>=-10;y--){j=2*sqrt(100-y*y); for(i=0;i<40;i++) if(i==20-j||i==20+j)printf("*"); else printf(" ");printf("\n");}}


        IP属地:浙江4楼2013-06-26 20:06
        回复
          好吧, 不发代码了,发一些使用技巧。 让大家看一下


          IP属地:浙江5楼2013-06-28 10:01
          回复
            // 复制输入, ^为不在此范围内的东西。
            str="1jasdfa2344sd389jfu233wesadh4e";
            char s[222],a[929],b[929];
            int c,d;
            sscanf(str,"%d%[^0-9]%d",&c,s,&d);
            puts(s);
            puts(a);
            puts(b);
            复制进去试试就知道了···


            IP属地:浙江6楼2013-06-28 10:01
            回复
              /跳过, 可以用 %*c 或者 %*2c 或者%*2d
              scanf("%2d%*2d%2d",&a,&b,&c); //这似乎是没有C的事情


              IP属地:浙江7楼2013-06-28 10:15
              回复
                用folat型做比较。比如float a;
                a=0;
                while(a==0) 这是错误的、、、可能在有些地方是对的。。。。
                浮点数赋值,它的极小数可能不为零。所以应该写成
                while(fabs(a)<=1.0e-6)


                IP属地:浙江9楼2013-07-02 11:38
                回复
                  是否觉得开始学的一些语句在后面的学习中根本没用呢。
                  一句while(){}或者for()语句就能代替任何循环语句了么? 其实不然。
                  char ch;
                  while(①) 在①处,假如需要ch做条件,比如ch!='#' 的话该怎么办?在定义的时候赋予其他的值? 这样是可以,不过这样做太死板。不灵活。 那么,这就可以用到do{}while语句。不论ch值是怎么样,都要执行一次。


                  IP属地:浙江10楼2013-07-02 11:44
                  回复
                    goto? 哦 不要用它。
                    这是非常错误的想法。我开头也是受老师指教,说尽量不要用。但是我在一本书上看到,goto语句要少用不能禁用。 所以我尝试写goto语句。发现效果非常好,如果逻辑操控的好,绝对不会出现死循环。也能更清晰你的逻辑思维,能跳到你任何想跳的地方,当然,一个cpp里面最好只有一两个goto,不然交错了就over了~


                    IP属地:浙江11楼2013-07-02 11:46
                    回复
                      前几天写了一个压缩程序,附带着学习了很多东西
                      怎么转进制?不需要自己编写了。 你可以使用ltoa 或者itoa 来转化进制,本人试验过,最高到达40进制哦。 ltoa(long*,char*,int ) 左边长整型,是要被转换的数字,可以是long x=0x99fff 这样的16进制, 可以十进制,只要计算机能识别的进制都行。 中间的char是存放转化后的进制。右边当然就是你想要转化的进制了。 itoa的格式是(
                      int*,char*,int ) 自行补脑~


                      IP属地:浙江14楼2013-07-05 08:22
                      回复
                        得到肯定还是挺开心的.不过我去进攻java了呢. 这些小技巧没办法在总结了.不好意思了大家


                        IP属地:浙江18楼2013-10-09 22:04
                        回复