| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 1287 人关注过本帖
标题:循环输入请教,为什么数据输入后不存储在数组里面?运行结果都是“屯”
只看楼主 加入收藏
haiboself
Rank: 3Rank: 3
等 级:论坛游侠
帖 子:193
专家分:196
注 册:2013-10-23
结帖率:100%
收藏
已结贴  问题点数:10 回复次数:21 
循环输入请教,为什么数据输入后不存储在数组里面?运行结果都是“屯”
#include<stdio.h>
#include<stdlib.h>
int main(void)
{   
    int i,j;
    char *p;
   
    scanf("%d",&i);
    p=(char *)malloc(i*sizeof(char));
    for(j=0;j<i-1;j++)
    {
        scanf("%c",p+i);
    }
    p[i-1]='\0';
    puts(p);
   
    free(p);
    return 0;
}
搜索更多相关主题的帖子: include 
2013-11-27 15:13
wht750109
Rank: 3Rank: 3
等 级:论坛游侠
帖 子:49
专家分:151
注 册:2013-10-21
收藏
得分:5 
#include<stdio.h>
#include<stdlib.h>
int main(void)
{   
    int i,j;
    char *p;
   
    scanf("%d",&i);
    p=(char *)malloc(i*sizeof(char));
    for(j=0;j<i-1;j++)
    {
        scanf("%c",p+i);                 这里是p+j吧。
    }
    p[i-1]='\0';                       i-1这里是j-1吧。
    puts(p);
   
    free(p);
    return 0;
}
2013-11-27 15:19
神奈创
Rank: 3Rank: 3
等 级:论坛游侠
威 望:3
帖 子:67
专家分:191
注 册:2013-3-31
收藏
得分:5 
#include<stdio.h>
#include<stdlib.h>
int main(void)
{   
    int i,j;
    char *p;
   
    scanf("%d",&i);
    p=(char *)malloc(i*sizeof(char));
    for(j=0;j<i-1;j++)
    {
        scanf("%c",p+i);//这里要p+i,p是你开辟出来的物理初始地址
    }
    p[i-1]='\0';                    
    puts(p);
   
    free(p);
    return 0;
}
2013-11-27 15:29
embed_xuel
Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19
等 级:贵宾
威 望:58
帖 子:3845
专家分:11385
注 册:2011-9-13
收藏
得分:0 
太让人失望了,本来还觉得你挺有希望的

总有那身价贱的人给作业贴回复完整的代码
2013-11-27 16:03
勇勇勇来也
Rank: 1
等 级:新手上路
帖 子:1
专家分:0
注 册:2013-11-24
收藏
得分:0 
等我两天,我看看内存那个章节的内容....建议你别气馁啊,好好看看代码,自习分析一下,一条条代码捋一捋,不要轻言放弃。
2013-11-27 16:52
thb
Rank: 2
等 级:论坛游民
帖 子:26
专家分:31
注 册:2013-11-21
收藏
得分:0 
#include<stdio.h>
#include<stdlib.h>
int main(void)
{   
    int i,j;
    char *p;
    scanf("%d",&i);
    getchar();
    p=(char *)malloc(i*sizeof(char));
    for(j=0;j<i;j++)
    {
        scanf("%c",p+j);
        getchar();
    }
    p[i]='\0';
    puts(p);
   
    free(p);
    return 0;
}
2013-11-27 22:55
haiboself
Rank: 3Rank: 3
等 级:论坛游侠
帖 子:193
专家分:196
注 册:2013-10-23
收藏
得分:0 
回复 4楼 embed_xuel
???
2013-11-28 22:13
haiboself
Rank: 3Rank: 3
等 级:论坛游侠
帖 子:193
专家分:196
注 册:2013-10-23
收藏
得分:0 
回复 5楼 勇勇勇来也
恩恩,一起努力!
2013-11-28 22:15
qq404380
Rank: 2
等 级:论坛游民
帖 子:32
专家分:53
注 册:2012-7-23
收藏
得分:0 
修改ok

#include<stdio.h>
#include<stdlib.h>
int main(void)
{   
    int i,j;
    char *p;
   
    scanf("%d",&i);
    getchar();
    p=(char *)malloc(i*sizeof(char));
    for(j=0;j<i-1;j++)
    {
        scanf("%c",p+j);
        getchar();
    }
    *(p+i)='\0';
    puts(p);
   
    free(p);
    return 0;
}
2013-11-29 00:41
qq404380
Rank: 2
等 级:论坛游民
帖 子:32
专家分:53
注 册:2012-7-23
收藏
得分:0 
加一下注释吧
#include<stdio.h>
#include<stdlib.h>
int main(void)
{   
    int i,j;
    char *p;
   
    scanf("%d",&i);
    getchar();//因为你接下来要接收内存里的数据,所以你输入数字之后的回车键\n要先用getchar()释放掉,以下同理。
    p=(char *)malloc(i*sizeof(char));
    for(j=0;j<i-1;j++)
    {
        scanf("%c",p+j);//循环的是j,别弄错
        getchar();//吸收回车键,同上
    }
    *(p+i)='\0';//字符怎么能给指针赋值呢?   * 取指针的内容, 字符赋值到指针的内容里。
    puts(p);
   
    free(p);
    return 0;
}
2013-11-29 00:46
快速回复:循环输入请教,为什么数据输入后不存储在数组里面?运行结果都是“屯” ...
数据加载中...
 
   



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

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