| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 400 人关注过本帖
标题:那里错了?
只看楼主 加入收藏
漩涡
Rank: 1
等 级:新手上路
帖 子:7
专家分:0
注 册:2011-9-11
结帖率:100%
收藏
已结贴  问题点数:20 回复次数:3 
那里错了?
# include<stdio.h>
# include<malloc.h>
# include<stdlib.h>
struct Arr
{
    int * pbase;//  存储的是数组的第一个元素的地址;
    int len;//   数组所能容纳的最大元素的个数;
    int cet;//   当前数组有效元素的个数;

};
void init_arr(struct Arr * pArr,int length);      //输入;
bool append_arr(struct Arr * pArr, int val);           //追加;
bool insert_arr(struct Arr * pArr, int pos, int val);         //插入;
bool delete_arr(struct Arr * pArr, int pos,int * pval);           //删除元素;
int get();
bool is_empty(struct Arr * pArr);     //判断是否为空;
bool is_full(struct Arr * pArr);         //判断是否满;
void show_arr(struct Arr * pArr);       //输出;
void sort_arr();      //排序;
void inversion_arr();      //倒置;

int main(void)
{
    struct Arr arr;
    int val;
    init_arr(&arr,6);
    show_arr(&arr);
    append_arr(&arr, 1);        //追加;
    append_arr(&arr, 2);
    append_arr(&arr, 3);
    append_arr(&arr, 4);
    append_arr(&arr, 5);
    insert_arr(&arr, 3, 88);
    show_arr(&arr);     //输出;
    if(insert_arr)            
    {
        printf("追加成功!\n ");
    }
    show_arr(&arr);      //输出;
    delete_arr(&arr, 2, &val);               //删除;
    if(delete_arr(&arr, 2, &val))
        printf("删除成功!删除的元素为%d\n",val);
/*    if(append_arr(&arr,8))
    {
        printf("追加成功!");
    }
    else
    {
        printf("追加失败!");
    }
*/
    show_arr(&arr);        //输出;
    printf("最大容量为:%d\n",arr.len);

    return 0;
}
void init_arr(struct Arr * pArr,int length)
{
    pArr->pbase=(int *)malloc(sizeof(int)*length);
    if(NULL==pArr->pbase)
    {printf("动态内存分配失败!\n");
    exit(-1);//终止整个程序;
    }
    else
    {
        pArr->len=length;
        pArr->cet=0;
    }
    return;
}
bool is_empty(struct Arr * pArr)
{
    if(0==pArr->cet)
        return true;
    else
        return false;
}
bool is_full(struct Arr * pArr)
{
    if(pArr->len==pArr->cet)
        return true;
    else
        return false;
}


void show_arr(struct Arr * pArr)
{
    if(is_empty(pArr))//      pArr已经是指针变量了。不加*号。
    {
        printf("数组为空!\n");
    }
    else
    {
        for (int i=0;i<pArr->cet;++i)
            printf("%d   ",pArr->pbase[i]);
        printf("\n");
    }
}

bool append_arr(struct Arr * pArr,int val)
{
    if (is_full(pArr))
        return false;
    else
    {
        pArr->pbase[pArr->cet]=val;
        pArr->cet++;
        return true;
    }
}
bool insert_arr(struct Arr * pArr, int pos,int val)
{
    if(pos<1||pos>pArr->cet+1)
        return false;
    if(is_full(pArr))
        return false;
    int i;
    for(i=pArr->cet; i>=pos; --i)
        pArr->pbase[i]=pArr->pbase[i-1];
    pArr->pbase[pos-1]=val;
    pArr->cet++;
    return true;
   
}
bool delete_arr(struct Arr * pArr, int pos,int * pval)
{
    if(pos<1||pos>pArr->cet)
        return false;
    if(is_empty(pArr))
        return false;
    int i;
    *pval=pArr->pbase[pos-1];
    for(i=pos;i<pArr->cet;++i)
    {
        pArr->pbase[i-1]=pArr->pbase[i];
        pArr->cet++;
    }
    return true;
}
搜索更多相关主题的帖子: cet include 元素 
2011-09-28 20:26
漩涡
Rank: 1
等 级:新手上路
帖 子:7
专家分:0
注 册:2011-9-11
收藏
得分:0 
2011-09-28 20:27
A13433758072
Rank: 11Rank: 11Rank: 11Rank: 11
来 自:广东潮州
等 级:小飞侠
威 望:1
帖 子:1182
专家分:2784
注 册:2010-7-22
收藏
得分:0 
#include<iostream>头文件

一步一个脚印...............................默默地前进.....
诚邀乐于解答c菜鸟问题,的热心网友加入,  QQ群38490319
2011-09-28 20:43
hellovfp
Rank: 16Rank: 16Rank: 16Rank: 16
等 级:禁止访问
威 望:30
帖 子:2976
专家分:7697
注 册:2009-7-21
收藏
得分:20 
程序代码:
# include<stdio.h>
# include<malloc.h>
# include<stdlib.h>
struct Arr
{
    int * pbase;//  存储的是数组的第一个元素的地址;
    int len;//   数组所能容纳的最大元素的个数;
    int cet;//   当前数组有效元素的个数;

};
void init_arr(struct Arr * pArr,int length);      //输入;
bool append_arr(struct Arr * pArr, int val);           //追加;
bool insert_arr(struct Arr * pArr, int pos, int val);         //插入;
bool delete_arr(struct Arr * pArr, int pos,int * pval);           //删除元素;
int get();
bool is_empty(struct Arr * pArr);     //判断是否为空;
bool is_full(struct Arr * pArr);         //判断是否满;
void show_arr(struct Arr * pArr);       //输出;
void sort_arr();      //排序;
void inversion_arr();      //倒置;

int main(void)
{
    struct Arr arr;
    int val;
    init_arr(&arr,6);
    show_arr(&arr);
    append_arr(&arr, 1);        //追加;
    append_arr(&arr, 2);
    append_arr(&arr, 3);
    append_arr(&arr, 4);
    append_arr(&arr, 5);
    insert_arr(&arr, 3, 88);
    show_arr(&arr);     //输出;
    if(insert_arr)           
    {
        printf("追加成功!\n ");
    }
    show_arr(&arr);      //输出;
//    delete_arr(&arr, 2, &val);               //删除;
    if(delete_arr(&arr, 2, &val))
        printf("删除成功!删除的元素为%d\n",val);
/*    if(append_arr(&arr,8))
    {
        printf("追加成功!");
    }
    else
    {
        printf("追加失败!");
    }
*/
    show_arr(&arr);        //输出;
    printf("最大容量为:%d\n",arr.len);
    printf("元素个数:%d\n", arr.cet);

    return 0;
}
void init_arr(struct Arr * pArr,int length)
{
    pArr->pbase=(int *)malloc(sizeof(int)*length);
    if(NULL==pArr->pbase)
    {printf("动态内存分配失败!\n");
    exit(-1);//终止整个程序;
    }
    else
    {
        pArr->len=length;
        pArr->cet=0;
    }
    return;
}
bool is_empty(struct Arr * pArr)
{
    if(0==pArr->cet)
        return true;
    else
        return false;
}
bool is_full(struct Arr * pArr)
{
    if(pArr->len==pArr->cet)
        return true;
    else
        return false;
}


void show_arr(struct Arr * pArr)
{
    if(is_empty(pArr))//      pArr已经是指针变量了。不加*号。
    {
        printf("数组为空!\n");
    }
    else
    {
        for (int i=0;i<pArr->cet;++i)
            printf("%d   ",pArr->pbase[i]);
        printf("\n");
    }
}

bool append_arr(struct Arr * pArr,int val)
{
    if (is_full(pArr))
        return false;
    else
    {
        pArr->pbase[pArr->cet]=val;
        pArr->cet++;
        return true;
    }
}
bool insert_arr(struct Arr * pArr, int pos,int val)
{
    if(pos<1||pos>pArr->cet+1)
        return false;
    if(is_full(pArr))
        return false;
    int i;
    for(i=pArr->cet; i>=pos; --i)
        pArr->pbase[i]=pArr->pbase[i-1];
    pArr->pbase[pos-1]=val;
    pArr->cet++;
    return true;
   
}
bool delete_arr(struct Arr * pArr, int pos,int * pval)
{
    if(pos<1||pos>pArr->cet)
        return false;
    if(is_empty(pArr))
        return false;
    int i;
    *pval=pArr->pbase[pos];
    for(i = pos; i < pArr->cet-1; i++)
    {
        pArr->pbase[i]=pArr->pbase[i+1];
        //pArr->cet++;
    }
    pArr->cet --;
    return true;
} 


[ 本帖最后由 hellovfp 于 2011-9-29 12:46 编辑 ]

我们都在路上。。。。。
2011-09-29 12:42
快速回复:那里错了?
数据加载中...
 
   



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

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