| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 274 人关注过本帖
标题:数组处理
取消只看楼主 加入收藏
周1992
Rank: 2
等 级:论坛游民
帖 子:70
专家分:60
注 册:2011-3-18
结帖率:76.92%
收藏
已结贴  问题点数:10 回复次数:0 
数组处理
#include<stdio.h>  
int e[1001],c[1001],d[1001];  
main()  
{ char a[1000],x;int i,j,k,m,n,step,g,h,p;  
  scanf ("%d",&step);  
 for (g=0;g<step;g++)  
 { for (i=0;;)   
   { scanf ("%c",&a[i]);  
     if (a[i]=='\n'&&i!=0) break;  
      else i++;  
   }  
   for (k=1000,j=0;j<i;j++,k--)  
    { if (a[j]>='0'&&a[j]<='9')  
        c[k]=a[j]-'0';  
      if (a[j]=='+'||a[j]=='-') break;  
    }  
    k=k+1;h=1000+k;  
   for (;k<=h-k;k++)  
    {  p=c[k];  
       c[k]=c[h-k];  
       c[h-k]=p;  
    }  
    x=a[j];  
   for (n=1000;j<i;j++,n--)  
    { if (a[j]>='0'&&a[j]<='9')  
         d[n]=a[j]-'0';  
    }  
    n=n+1;h=1000+n;  
   for (;n<=h-n;n++)  
    {  p=d[n];  
       d[n]=d[h-n];  
       d[h-n]=p;  
    }  
  switch (x)  
   {  case ('+'):  
        {  for (n=1000;n>=0;n--)  
            { e[n]=c[n]+d[n]+e[n];  
               if (e[n]>=10)   
                { e[n]=e[n]-10;  
                   e[n-1]=e[n-1]+1;  
                }  
            }  
        };  break;  
      case ('-'):  
        {  for (n=1000;n>=0;n--)  
            { e[n]=c[n]-d[n]+e[n];  
               if (e[n]<0)  
                {   e[n]=e[n]+10;  
                    e[n-1]=e[n-1]-1;  
                }  
            }  
        }; break;  
   }  
   for (i=0;;i++)  
     if (e[i]!=0) break;  
  for (;i<1001;i++)   
    printf ("%d",e[i]);  
   printf ("\n");  
 }  
}  
这个计算为什么第一次时对的,第二次就不对???
各位进来的请试一下,谢谢。
输入的数为
2
213914+23466123
32862934-23481243
输出
23680037
9381691
搜索更多相关主题的帖子: 1000 include 
2011-05-22 22:28
快速回复:数组处理
数据加载中...
 
   



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

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.026931 second(s), 8 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved