| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 457 人关注过本帖
标题:有人能告诉我这错哪儿了吗?刚学c语言的.......
只看楼主 加入收藏
蓝色的媛
Rank: 1
等 级:新手上路
帖 子:3
专家分:0
注 册:2013-11-28
结帖率:0
收藏
已结贴  问题点数:20 回复次数:7 
有人能告诉我这错哪儿了吗?刚学c语言的.......
#include<stdio.h>
int main()
{
     int k,repeat,j;
     char a[999];
       scanf("%d",&repeat);   
      
    for(j=1;j<=repeat;j++)
    {   
        k=0;
        scanf("%s",&a[k]);
         
   while(a[k]!='\n')
   {
       if(a[k]>='0' && a[k]<='9')
       printf("%d\t",a[k]-'0');
       k++;
   }
   printf("\n");
    }
return 0;
}
搜索更多相关主题的帖子: 学c语言 repeat 
2013-11-28 22:58
azzbcc
Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19
来 自:江西财经大学
等 级:贵宾
威 望:81
帖 子:3293
专家分:12919
注 册:2012-11-4
收藏
得分:5 
while(a[k]!='\n')  改成  while(a[k]!='\0')


[fly]存在即是合理[/fly]
2013-11-28 23:02
qq404380
Rank: 2
等 级:论坛游民
帖 子:32
专家分:53
注 册:2012-7-23
收藏
得分:5 
你这程序想的有问题,你定义a[]数组是char类型,怎么后面以%s的类型接收数据?  你到底是要接收字符的还是字符串的? 要是字符串,只需要a就好了,因为定义数组a[999],a就表示数组的首地址,地址可以接收字符转;要是你想接受的是字符,那就可以用a[k],这种写法,因为a[k]表示是char类型数组中的一员,接收的是字符,还有问问题最好把你程序想完成的功能说一下,好帮助你分析,有不懂加qq 1639906474
2013-11-28 23:56
so_love
Rank: 13Rank: 13Rank: 13Rank: 13
等 级:蒙面侠
威 望:7
帖 子:812
专家分:4151
注 册:2013-11-25
收藏
得分:5 
k=0;  //这个k=0最好拿到for循环之外赋值。要不每次你都将k赋值为0 。。。

scanf("%s",&a[k]);// 这个换成%c,
         
   while(a[k]!='\n') // “\n” 换成"\0"


[ 本帖最后由 so_love 于 2013-11-29 09:26 编辑 ]

一花一世界、一叶一追寻、片片花叶落、情系何人身。
2013-11-29 09:22
蓝色的媛
Rank: 1
等 级:新手上路
帖 子:3
专家分:0
注 册:2013-11-28
收藏
得分:0 
回复 4楼 so_love
换成%c就不对了呢
2013-11-29 14:52
蓝色的媛
Rank: 1
等 级:新手上路
帖 子:3
专家分:0
注 册:2013-11-28
收藏
得分:0 
回复 2楼 azzbcc
对啦!
2013-11-29 14:53
so_love
Rank: 13Rank: 13Rank: 13Rank: 13
等 级:蒙面侠
威 望:7
帖 子:812
专家分:4151
注 册:2013-11-25
收藏
得分:0 
好吧好吧。。。。向大神学习。。

一花一世界、一叶一追寻、片片花叶落、情系何人身。
2013-11-29 15:03
ytlcainiao
Rank: 2
等 级:论坛游民
帖 子:48
专家分:74
注 册:2013-11-28
收藏
得分:5 
#include<stdio.h>
int main()
{
     int k,i,j;
     scanf("%d",&j);
     int a[999]={0};
     for(i=0;i<j;i++)
     {
         fflush(stdin);
         scanf("%c",&a[i]);
     }
     k=0;
     while(a[k]!='\0')
     {
         if(a[k]>='0'&&a[k]<='9')
             a[k]=a[k]-'0';
         k++;
     }
     for(i=0;i<k;i++)
        printf("%3d",a[i]);
return 0;
}
2013-11-29 15:51
快速回复:有人能告诉我这错哪儿了吗?刚学c语言的.......
数据加载中...
 
   



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

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