| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 3905 人关注过本帖
标题:关于动态分配+算法
只看楼主 加入收藏
lnhaing
Rank: 1
等 级:新手上路
帖 子:111
专家分:0
注 册:2008-1-30
收藏
 问题点数:0 回复次数:51 
关于动态分配+算法
实现这样一个函数:   
输入A-Z其中一个字母,比如你输入A那么就输出A,输入B就输出ABA  

   INPUT:      OUTPUT:   
     A           A   
     B           ABA   
     C           ABACABA   
     D           ABACABADABACABA   
     E           ABACABADABACABAEABACABADABACABA  
代码::
程序代码:
#include <stdio.h> 
#include <stdlib.h> 
#include <math.h> 
//#include <string.h>
//#define NULL 0 
//char p[100]={0};

int main() 
{ 
    char letter,*p;
    int i,size; 
    scanf("%c",&letter);
    if(letter<65||letter>90)
        printf("Error\n");
    else
    {
        for(i=1;i<=letter-64;i++)
        {
            size=(int)pow(2,i);
            p = (char *)malloc(size+1);
            if(p!=NULL)
            {
            if(i==1)
            {
                p[0]=i+64;
                p[1]='\0';
            }
            else
            {
                for(int k=0; k<size/2-1; k++)
                {
                    p[k] = p[k];
                    p[size/2+k] = p[k];
            
                }
                p[size/2-1] = i+64;
            }
            }
        
        }
    }
    puts(p);
    free(p);
    return 0; 
}

我用固态分配数组空间,可以实现的(算法应该正确),但要p[2^26]这么大的空间,浪费!
用动态分配(代码如上),怎么输出乱码?怎么回事????
求高人!
搜索更多相关主题的帖子: 算法 动态 include ABA int 
2008-05-05 16:11
lnhaing
Rank: 1
等 级:新手上路
帖 子:111
专家分:0
注 册:2008-1-30
收藏
得分:0 
用飞燕的代码高亮,怎么没亮起来!
郁闷了!偶水平太次了!

我来自偶然! bitter C
2008-05-05 16:13
sunkaidong
Rank: 4
来 自:南京师范大学
等 级:贵宾
威 望:12
帖 子:4496
专家分:141
注 册:2006-12-28
收藏
得分:0 
像二叉树的中序遍历....

学习需要安静。。海盗要重新来过。。
2008-05-05 16:16
wltysy
Rank: 1
等 级:新手上路
帖 子:560
专家分:0
注 册:2008-5-2
收藏
得分:0 
hehe
2008-05-05 16:18
lnhaing
Rank: 1
等 级:新手上路
帖 子:111
专家分:0
注 册:2008-1-30
收藏
得分:0 
恩!sunkaidong,帮我看下!

我来自偶然! bitter C
2008-05-05 16:18
lnhaing
Rank: 1
等 级:新手上路
帖 子:111
专家分:0
注 册:2008-1-30
收藏
得分:0 
人呢?
晚上回来再看!

我来自偶然! bitter C
2008-05-05 16:50
sunkaidong
Rank: 4
来 自:南京师范大学
等 级:贵宾
威 望:12
帖 子:4496
专家分:141
注 册:2006-12-28
收藏
得分:0 
#include <iostream>
using namespace std;
typedef struct binarytree
{
    char c;
    struct binarytree *plchild;
    struct binarytree *prchild;
}btr;
void  bbtr(btr *p,int i)
{   
     
     p->c='A'+i;
     p->plchild=NULL;
     p->prchild=NULL;
     if(i>0)
     {
     p->plchild=(btr *)malloc(sizeof(btr));
     p->prchild=(btr *)malloc(sizeof(btr));
     bbtr(p->plchild,i-1);
     bbtr(p->prchild,i-1);
     }
}

void  bbtrs(btr *p)
{   
    
     if(p!=NULL)
     {
        bbtrs(p->plchild);
        printf("%c",p->c);
        bbtrs(p->prchild);
        
     }
}
int  main()
{   
    btr *p;
    char c;
    p=(btr *)malloc(sizeof(btr));
    cout<<"请输出大写字母."<<endl;
    cin>>c;
    bbtr(p,c-'A');
    bbtrs(p);
    return 0;
   
}

[[it] 本帖最后由 sunkaidong 于 2008-5-5 17:16 编辑 [/it]]

学习需要安静。。海盗要重新来过。。
2008-05-05 17:07
StarWing83
Rank: 8Rank: 8
来 自:仙女座大星云
等 级:贵宾
威 望:19
帖 子:3951
专家分:748
注 册:2007-11-16
收藏
得分:0 
#include <stdio.h>
#include <ctype.h>

void p(char c)
{
    if (c=='A')putchar('A');
    else {p(c-1);putchar(c);p(c-1);}
}

int main()
{
    char ch=getchar();
    if(!isupper(ch))
        printf("error.");
    else
        p(ch);
    putchar('\n');
    return 0;
}


try this!

专心编程………
飞燕算法初级群:3996098
我的Blog
2008-05-05 17:32
moonwalker
Rank: 1
等 级:新手上路
威 望:1
帖 子:909
专家分:2
注 册:2007-3-2
收藏
得分:0 
ls真快。。。
我刚看到准备用递归做你就发出来了

“视频教程网”免费提供教学资源
C不限制你的自由!
条件是自己承担滥用自由的恶果!
2008-05-05 17:37
StarWing83
Rank: 8Rank: 8
来 自:仙女座大星云
等 级:贵宾
威 望:19
帖 子:3951
专家分:748
注 册:2007-11-16
收藏
得分:0 
这种题第一感觉就是递归吧……

专心编程………
飞燕算法初级群:3996098
我的Blog
2008-05-05 17:40
快速回复:关于动态分配+算法
数据加载中...
 
   



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

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