软件设计师的一道数据流图题

 

       软件设计师的一道数据流图题,我按他的算法写出程序来    

      现在才发现05年印刷那本软件设计师考点分析很多错误,真是害人不浅啊

     我看看资料想想,如果我只去一味追求解题技巧对我的编程能力一点帮助也没有

 于是就做一些算法框架题后把算法用C写出来 这样才有提高

  一动手就编程效率太差了,象现在画好框架图再“写”,可以说是“填”代码了。

所以通过考软设我经过一些没以前没注意提高的软件设计能力 比如文档书写 程序筐架的构造

要从一个光会编写小程序的菜鸟向能写大型软件的老鸟过渡才行

我想继续考软设的目的是提高能力,而不是仅仅那个证书而已

闲话少说

题目是比如

A={3,3,3,3,5,5,7,6,3,6,2,2,2,2,1,2}

变换后

 B={4,3,2,5,-4,7,6,3,6,4,2,-2,1,1,2}

 

代码如下:

 

int  main( int  argc,  char *  argv[])
{
    
int array[10]={1,3,4,4,4,4,3,3};
    
int Barray[50];
    
/*
    for(int i=0;i<10;i++)
    {
    array[i]=rand()%4;
    }
    
*/

    
    
    
bool _C;
    
if(array[0]==array[1])
    
{
        _C
=true;
    }

    
else
    
{
        _C
=false;
    }

    
int k1=0;
    
int k=1;
    
int pot=1;
    
int times=1;
    Barray[
1]=array[0];
    
while(pot < 10)
    
{
        
if(array[pot-1]==array[pot])
        
{
            
if(_C)
            
{
                times
++;
            }

            
else
            
{
                
if(times>1)
                
{
                    Barray[k1]
=1-times;
                    k1
=k;
                    k
++;
                    Barray[k]
=array[pot-1];
                }

                _C
=true;
                times
=2;
                
            }

            
        }

        
else
        
{
            
if(_C)
            
{
                Barray[k1]
=times;
                k1
=k+1;
                Barray[k
+2]=array[pot];
                k
=k+2;
                times
=1;
                _C
=false;    
            }

            
else
            
{
                times
++;
                k
++;
                Barray[k]
=array[pot];
            }

        }

        pot
++;    
        
        
    }

    
if(_C)
    
{
        Barray[k1]
=times;    
    }

    
else
    
{
        Barray[k1]
=-times;    
    }

    
    
for(int pos=0;pos<10;pos++)
    
{
        printf(
"%d  ",array[pos]);
    }

    printf(
" ");
    pos
=0;
    
while(Barray[pos]>=-50)
    
{
        printf(
"%d  ",Barray[pos]);
        pos
++;
    }

    
    
return 0;
}

 

 

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 2
    评论
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值