首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > C语言 >

请各位帮忙看看,小弟我这道题写的对马 多谢

2012-03-08 
请各位大虾帮忙看看,我这道题写的对马 谢谢!从键盘上不断键入字符,将键入的字符存入一个增长的无名数组中,

请各位大虾帮忙看看,我这道题写的对马 谢谢!
从键盘上不断键入字符,将键入的字符存入一个增长的无名数组中,每键入一个字符就增长一个无名元素,并在最后将所有的字符输出。


我的程序如下

#include   "stdio.h "
#include   "stdlib.h "

main()
{
        char   *p,ch;
        int   n=1,k;
       
     
        p=&ch;
        p=(char   *)malloc(sizeof(char));
        scanf   ( "%c ",&ch);
        while   (ch!=1)
        {
        n++;
        p=(char   *)realloc(p,n*sizeof(char));
        scanf   ( "%c ",&ch);
        }
        for(k=1;k <=n;k++)
        {
        printf   ( "%c%d ",p[k],n);
        }
       
}


感觉思路上是没有错误的吧。。。呵呵

[解决办法]
思路错误。
你把链表与数组混为一谈了,那是不对的,数组在内存中是一块连续的空间,而链表不是,它是
随机存储的。
看一下基础的东西吧,我写个例子你看一下:
#include <stdlib.h>
#include <stdio.h>
typedef struct ch
{
char a;
struct ch *next;
}CH;
main()
{
CH *pc, *ph, *pp;
pc = (CH *)malloc(sizeof(CH));
ph = pp = pc;
pc-> next = NULL;
pc-> a = getchar();
getchar();
while(pc-> a != '1 ')
{
pc = (CH *)malloc(sizeof(CH));
pp-> next = pc;
pc-> a = getchar();
getchar();
pc-> next = NULL;
pp = pp-> next;
}
pp = ph;
while(pp != NULL)
{
printf( "%c ",pp-> a);
pp = pp-> next;
}
printf( "\n ");
}

热点排行