| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
共有 1162 人关注过本帖
标题:删数题:编译的时候提示错误缺少数组界限符
取消只看楼主 加入收藏
饭桶
Rank: 6Rank: 6
等 级:侠之大者
帖 子:165
专家分:422
注 册:2011-4-5
结帖率:100%
收藏
已结贴  问题点数:30 回复次数:2 
删数题:编译的时候提示错误缺少数组界限符
题目是:给定n 位正整数a,去掉其中任意k≤n 个数字后,剩下的数字按原次序排列组成一个新的正整数。对于给定的n位正整数a 和正整数k,设计一个算法找出剩下数字组成的新数最小的删数方案。 对于给定的正整数a,编程计算删去k个数字后得到的最小数。
 
我编的源程序:
#include "stdio.h"
#include "math.h"
#define  p 10;
 long weishu( long n) //判断n的位数
                   {int weishu=0;
                    do
                     {n=n/10;
                       weishu++;
                     } while(n!=0);
                    return weishu;
                   }
int chaishu(int str1[],int n) //对n进行拆数
            {int i,w; long sum;
            
             for(i=0;i<=weishu(n)-1;i++)
              {w=weishu(n)-i;
               str1[i]=(int)(n/pow(10,w));
               sum=str1[i]*(int)pow(10,w);
               n=n-sum;
              
              }
             }
int shanshu(int str2[],int str3[],int n,int s) //把所输入的数字删啦
           {int j,k,l;
              for(j=0;j<=weishu(n)-1;j++)
                for(k=0;k<=weishu(s);k++)
                  if(str2[j]==str3[k])//判断是否相同
                   for(l=j;l<weishu(n);l++)
                     str2[l]=str2[l+1];//覆盖
                  
            
           }
int maopao(int str[],int n,int s)//用冒泡法排序
         {int a,b,temp;
          for(a=0;a<=weishu(n)-weishu(s);a++)
             for(b=0;b<weishu(n)-weishu(s)-a;b++)
                if(str[b]>str[b+1])
                  {temp=str[b];str[b]=str[b+1];str[b+1]=temp;}
               
         }
main()
{  long n,s; int a,b,w;int str4[p]; int str5[p];
  printf("please input the number:\n");//输入数
  scanf("%d",&n);
  chaishu(str4,n);//对n进行拆数
  printf("Input the number you wish to delete:\n");
  scanf("%d",&s);//输入所要删除的数
  chaishu(str5,s);
  shanshu(str4,str5,n,s);//删数
  maopao(str4,n,s);//冒泡
  w=weishu(n)-weishu(s);
  for(a=0;a<=w;a++)//确保所出的第一位不是0
      if(str4[a]==0) break;
  for(b=a;b<=w;b++)   
      printf("%d",str4[a]);//输出

  
}


为什么编译的时候总是提醒错误(我用的是c++6.0):
:\c的调试\分步.cpp(42) : error C2143: syntax error : missing ']' before ';'
I:\c的调试\分步.cpp(42) : error C2143: syntax error : missing ';' before ']'
I:\c的调试\分步.cpp(42) : error C2143: syntax error : missing ']' before ';'
I:\c的调试\分步.cpp(42) : error C2143: syntax error : missing ';' before ']'
搜索更多相关主题的帖子: 源程序 正整数 
2011-04-07 18:52
饭桶
Rank: 6Rank: 6
等 级:侠之大者
帖 子:165
专家分:422
注 册:2011-4-5
收藏
得分:0 
回复 2楼 sange
太感谢你啦!编译是没问题,但是运行的时候会有点问题,可能我的逻辑有错误吧,谢谢你!!!

人得一生得奋斗!
2011-04-07 22:25
饭桶
Rank: 6Rank: 6
等 级:侠之大者
帖 子:165
专家分:422
注 册:2011-4-5
收藏
得分:0 
你的算法是对的,谢谢你!   
我们学校限制上网时间,我有很多天没有上网啦,所以才会这么晚回复你,对不起!
谢谢你,给我上了一课!

人得一生得奋斗!
2011-04-20 22:27
快速回复:删数题:编译的时候提示错误缺少数组界限符
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.018984 second(s), 10 queries.
Copyright©2004-2025, BC-CN.NET, All Rights Reserved