| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 1452 人关注过本帖
标题:为什么运行的时候运行不出来,谢谢亲们解答!
只看楼主 加入收藏
小心飞刀hbw
Rank: 2
等 级:论坛游民
帖 子:47
专家分:24
注 册:2016-3-21
结帖率:85.71%
收藏
已结贴  问题点数:10 回复次数:3 
为什么运行的时候运行不出来,谢谢亲们解答!
图片附件: 游客没有浏览图片的权限,请 登录注册
图片附件: 游客没有浏览图片的权限,请 登录注册
2016-05-25 22:55
vvvcuu
Rank: 9Rank: 9Rank: 9
等 级:贵宾
威 望:12
帖 子:353
专家分:1253
注 册:2014-4-22
收藏
得分:8 
楼主试着了解一下scanf()的工作步骤.

在你输入12345后,系统在等待你的继续输入,  12345还在int的范围内,因此它被存储在a[0]中,系统这个时候再等待你的a[1],a[2]...的值. 不是程序运行不出来, 而是程序一直在正确的运行,等待你的输入.  你还没有输入完,程序没法继续向下执行.  

另外,你的程序这样子写,一定通不过的. 对问题的切入点搞错了, 程序怎么都不会正确了.

好久不动键盘了, 试着写一个,能达到程序输出要求. 没有细考虑算法问题.

程序代码:
#include <stdio.h>
int main()
{
    int number,temp[5],i,j,k,a,b,c;
    if((i=(scanf("%d",&number)))!=1)
    {printf("输入有误! \n");
    return 0;}
    else {
        temp[0]=number/10000;
        a=number%10000;
        temp[1]=a/1000;
        b=a%1000;
        temp[2]=b/100;
        c=b%100;
        temp[3]=c/10;
        temp[4]=number%10;
        for(i=0;i<5;i++){
            if(temp[i]>0)
            {printf("%d\n",5-i);
            goto s;}
        }
        s: for(j=i;j<5;j++){
               printf("%d",temp[j]);
               if(j!=4)printf(" ");
               else printf("\n");
           }
           
        for(k=4;k>=0;k--){
            
            if(temp[k]!=0)printf("%d",temp[k]);
        }
        return 0;
    }
}

代码测试环境:  WinXP+C-Free5.0.
2016-05-25 23:39
小白小白一只
Rank: 2
来 自:吉林大学
等 级:论坛游民
帖 子:16
专家分:41
注 册:2016-3-30
收藏
得分:1 
个人觉得,sizeof (a )就可以吧,在我印象中应该是不用除以sizeof (int )的,这个函数应该是自带的,还有你第二个for 循环里面,把i 小于4改成i 小于等于4,这样下面那行输出5的print 就不用了,你可以试一下
2016-05-25 23:41
小白小白一只
Rank: 2
来 自:吉林大学
等 级:论坛游民
帖 子:16
专家分:41
注 册:2016-3-30
收藏
得分:1 
还有你这样输入的话,应该输入1 2 3 4 5 而不是12345,,这个程序应该用取模来做
2016-05-25 23:44
快速回复:为什么运行的时候运行不出来,谢谢亲们解答!
数据加载中...
 
   



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

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