| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 279 人关注过本帖
标题:输入输出问题
只看楼主 加入收藏
nevergone
Rank: 1
等 级:新手上路
帖 子:5
专家分:0
注 册:2014-10-24
结帖率:100%
收藏
已结贴  问题点数:5 回复次数:4 
输入输出问题
一个简单的数字加密,对每位数字加2,如果某一位加2后超过十就取它被10除的余数。
1.但是每次我输入一个数之后,摁下回车,都没有输出结果,除非我输入一个数之后,摁下空格再输入一个数,就会输出第一个数的结果。
感觉很奇怪?
2.算法也有问题,每次运算个位数只会加1,其他位数正常

#include<stdio.h>
#include<math.h>
main()
{
    int a,b,c,k=0,s=0;
    scanf("%d\n",&a);
    do
    {
        b=a%10;
        if(b<=7)  c=b+2;
        else      c=(b+2)%10;
        s=s+c*pow(10,k);
        k++;
        a=a/10;
         
    }while(a>0);
    printf("%d\n",s);
}

[ 本帖最后由 nevergone 于 2014-10-24 12:26 编辑 ]
2014-10-24 08:43
embed_xuel
Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19
等 级:贵宾
威 望:58
帖 子:3845
专家分:11385
注 册:2011-9-13
收藏
得分:3 
scanf("%d\n",&a);
把\n去掉

总有那身价贱的人给作业贴回复完整的代码
2014-10-24 09:23
nevergone
Rank: 1
等 级:新手上路
帖 子:5
专家分:0
注 册:2014-10-24
收藏
得分:0 
回复 2 楼 embed_xuel
谢谢,好了。
但是我发现每次运行完个位数都会出错,其他位数不会出错,不知道是不是算法还存在缺陷?
2014-10-24 09:36
fogmaple
Rank: 4
来 自:江西省赣州市于都县
等 级:业余侠客
威 望:1
帖 子:119
专家分:233
注 册:2014-7-28
收藏
得分:0 
以下是引用embed_xuel在2014-10-24 09:23:54的发言:

scanf("%d\n",&a);
把\n去掉

嗯,非常的不错,学习下
2014-10-24 10:16
wp231957
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
来 自:神界
等 级:贵宾
威 望:423
帖 子:13688
专家分:53332
注 册:2012-10-18
收藏
得分:2 
程序代码:
#include <stdio.h>

void reserve(int m)
{
    if(m==0) return;
    int n;
    n=(m%10+2)%10;
    m/=10;
    reserve(m);
    printf("%d",n);
}

int main(void)
{
    int m;
    printf("请输入原始数字:");
    scanf("%d",&m);
    reserve(m);
    return 0;
}

DO IT YOURSELF !
2014-10-24 14:31
快速回复:输入输出问题
数据加载中...
 
   



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

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