当前位置:首页
开发技术指南» 文章正文
    引言:

    摘要: 关于混淆,有没有反混淆软件?@_@ 有的话麻烦给发个来,或者可用的链接也可以? 关于流操作,俺也知道一句半句不好说 有没有关于流类的书,内容嘛,从入门到比较深入 还有就是位操作,运算规则倒是理解,但是一到具体应用上就不明白了,看代码的时候遇到困难,不明白那些操作到底干吗-_- 请各位前辈不吝赐教,小的这里多谢了! //bow ......
    摘要: 某页面有一个输入框,输入完页码后点击“转到”(提交一个form)后会跳到相应页面。 但是如果在输入框内输入完页码后按回车会在自动跳转,并且提示输入为""。麻烦解决一下这个问题,谢啦。 ......


两个问题,程序实现

问题1:有两个全为数字的字符串,计算它们乘积的结果  
  问题2:有一个int型数组,每一项取值为-100到100,无序排列。如何截出和最大的一段。  
   
  一小时内

NO.1   作者: megaboy

第二个问题:  
   
  #include   <stdio.h>  
  #include   <stdlib.h>  
  #include   <time.h>  
   
  int   main()  
  {  
  int   source[100],   i,   j,   k,   iTemp,   iSum=0,   iLocation,   iLength;  
  srand((unsigned)time(NULL));  
  for(i=0;   i<=99;   ++i)   source[i]   =   rand()%201-100;  
  for(i=1;   i<=100;   ++i)  
  {  
  for(j=0;   j<=100-i;   ++j)  
  {  
                                                  iTemp   =   0;  
              for(k=0;   k<=i-1;   ++k)   iTemp   +=   source[j+k];  
              if(iTemp   >   iSum)   iSum   =   iTemp,   iLocation   =   j,   iLength   =   i;  
  }  
  }  
  printf("Sum   of   the   section   started   from   source[%d]   which   contains   %d   elements   is   the   biggest!",   iLocation,   iLength);  
                  return   0;  
  }

NO.2   作者: szws

简单啊,动态规划就行了,遍历一遍就能搞定  
  int   Fmaxsum(int   a[],int   n)  
  {  
  int   sum=0;  
  int   b=0;  
  for(int   i=0;i<n;i++)  
  {  
  if(b>0)  
  b+=a[i];  
  else  
  b=a[i];  
  if(b>sum)  
  sum=b;  
  }  
  return   sum;  
  }  
  void   main()  
  {  
  int   a[]={1,2,3,4,-1,3,-7,5,1};  
  cout<<Fmaxsum(a,9);  
  }

NO.3   作者: szws

void   Fmaxsum(int   a[],int   n)  
  {  
  int   sum=0;  
  int   begin=0,end=0;  
  int   b=0;  
  for(int   i=0;i<n;i++)  
  {  
  if(b>0)  
  {  
  b+=a[i];  
  }  
  else  
  {  
  b=a[i];  
  begin=end=i;  
  }  
  if(b>sum)  
  {  
  sum=b;  
  end=i;  
  }  
  }  
  cout<<"最大段数据为"<<endl;  
  for(i=begin;i<=end;i++)  
  cout<<a[i]<<   ;  
  cout<<endl<<"值为"<<sum<<endl;  
  }  
  void   main()  
  {  
  int   a[]={1,-2,3,4,-1,3,-4,5,-7,1};  
  Fmaxsum(a,10);  
  }

NO.4   作者: acolu

问题2:  
  #include   <stdio.h>  
  #define   n   10         //定义数组个数;  
  void   main()  
  {  
  int   a[n],i,j;   //定义一个数组和两个循环变量  
  int   b,sum;   //定义SUM为最大一段数组的值;b为存放随机数组段的值  
  int   x,y;   //定义x和y为数组段的起始下标和终止下标;  
  b=0;   sum=0;  
  for(i=0;i<n;i++)  
  scanf("%d",&a[i]);  
  for(j=0;j<n;j++)  
  {  
      for(i=j;i<n;i++)  
  {  
  b=b+a[i];  
  if(b>sum)  
  {  
  sum=b;  
  x=j;  
  y=i;                   }  
  }  
  b=0;  
  }  
  printf("sum=%d\n",sum);  
  printf("a[%d]-a[%d]是最大的数组段",x,y);  
  }  
  程序的算法是将每个有可能的数组段的值保留最大值在sum里;  
  程序没有仔细检查,只是测试了几个数组都成功;

NO.5   作者: zhouhuahai

问题一:有两个全为数字的字符串,计算它们乘积的结果  
   
  这个程序可以计算100位的乘法  
  #include   <stdio.h>  
  #include   <string.h>  
  #include   <math.h>  
  void   aa(char   *,int,char   *);  
  int   main()  
  {  
  char   a[100],b[100],c[200];  
  int   i,flag=0;  
  gets(a);  
  gets(b);  
  for(i=0;i<=199;i++)   c[i]=0;  
  for(i=0;i<=strlen(b)-1;i++)   aa(a,b[i]-0,c);  
  for(i=0;i<=199;i++)  
  {  
  if(c[i]==0&&flag==0)   continue;  
  flag=1;  
  printf("%c",c[i]);  
  }  
  }  
  void   aa(char   *p,int   x,char   *q)  
  {  
  int   xx,j,jj,m,w=0;  
  for(j=1;j<=199;j++)   q[j-1]=q[j];  
  q[199]=0;  
  for(j=strlen(p)-1;j>=0;j--)  
  {  
  m=(p[j]-0)*x+w+q[199-(strlen(p)-j-1)]-0;  
  xx=m%10;  
  w=floor(m/10);  
  q[199-(strlen(p)-j-1)]=xx+0;  
  }  
  while(w!=0)  
  {  
  m=q[199-(strlen(p)-j-1)]-0+w;  
  xx=m%10;  
  w=floor(m/10);  
  q[199-(strlen(p)-j-1)]=xx+0;  
  j--;  
  }  
  }

NO.6   作者: foochow

szws(克米帅)   的方法不错,呵呵  
  //修改了下  
   
  #include<iostream>  
  using   namespace   std;  
  void   Fmaxsum(int   a[],int   n)  
  {  
            int   sum=a[0];  
            int   begin=0,end=0;  
            int   b=0,t=0;  
            for(int   i=0;i<n;i++)  
          {  
                      if(b>0)  
  {  
                              b+=a[i];  
  }  
                      else  
  {  
                              b=a[i];  
                              t=i;  
  }  
                      if(b>sum||b==sum)  
  {  
                              sum=b;  
            begin=t;  
                              end=i;  
  }  
            }  
            cout<<"最大段数据为"<<endl;  
            for(i=begin;i<=end;i++)  
            cout<<a[i]<<   ;  
            cout<<endl<<"值为"<<sum<<endl;  
  }  
  void   main()  
  {  
          int   a[]={1,-2,3,4,-1,3,-4,5,-7,1};  
          Fmaxsum(a,10);  
  }  
 

NO.7   作者: yajyjy

void   FindMax(const   int   a[],   const   int   n)  
  {  
  int   i   =   0;  
  int   j   =   0;  
  int   iSum   =   0;  
  int   iStart   =   0;  
  int   iAdd   =   0;  
  int   iLen   =   0;  
  for   (i   =   0;   i<n;   i++)  
  {  
  iAdd   =   0;  
  for   (j=1;   j<=n-i;   j++)  
  {  
  iAdd   +=   a[j+i-1];  
  if   (iAdd   >   iSum)  
  {  
  iSum   =   iAdd;  
  iStart   =   i;  
  iLen   =   j;  
  }  
  }  
  }  
  }


 ·关于dtpicker焦点的奇怪问题    »显示摘要«
    摘要: 我在程序中设置了用enter键代替tab键,代码如下: keypreview = true private sub form_keypress(keyascii as integer) if keyascii = 13 then sendkeys "{tab}" keyascii = 0 end if end sub 运行中一切正常,只是一旦遇到dtpicker控件......
» 本期热门文章:

©2000-2007 All Rights Reserved. 最佳浏览:1024X768 MSIE