| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 13843 人关注过本帖, 1 人收藏
标题:输入一个四位正整数,将其加密后输出。
取消只看楼主 加入收藏
忆泪
Rank: 2
等 级:论坛游民
帖 子:42
专家分:49
注 册:2011-10-22
结帖率:75%
收藏(1)
已结贴  问题点数:20 回复次数:4 
输入一个四位正整数,将其加密后输出。
方法是将该数每一位上的数字加9,然后除以10 取余,作为该位上的新数字,最后将千位和十位上的数字互换,百位和个位上的数字互换,组成加密后的新四位数。
【样例输入输出】 (括号内为说明文字)
Enter a number: 1257
The  encrypted  number  is  4601(每一位上的数字加9 除以10 取余后得0146,交换后得到4601)



自己觉得应该用数组应该比较简单的吧,可是老实现不了,谁能帮忙看看啊,,有其他办法不,,自己用了个本办法,如下代码:
程序代码:
#include<stdio.h>
void main()
{
    int num;
    printf("Enter a number (1000<=num<=9999):\n");
    scanf("%d",&num);
    num=(num/1000+9)%10*10+((num/100)%10+9)%10+((num/10)%10+9)%10*1000+(num%10+9)%10*100;
    printf("The  encrypted  number  is  %d\n",num);
}
搜索更多相关主题的帖子: Enter number 正整数 加密 
2012-04-07 08:24
忆泪
Rank: 2
等 级:论坛游民
帖 子:42
专家分:49
注 册:2011-10-22
收藏
得分:0 
回复 2楼 巴克
受教啦,,感谢,,,至于到底是那种方法简单,我也不清楚,只是看到题目第一眼感觉应该用数组的吧,,,
虽然都可以实现问题描述,,但是你的方法看起来比较层次清晰,我的比较混乱而已,,,
void swap_array(int array[])这个函数中的,int t;我第一遍没看出来,他有啥用,,原来是里面调用的 swap函数需要,,,嘿嘿。。
不管怎么说,,受教了,谢谢
2012-04-07 22:00
忆泪
Rank: 2
等 级:论坛游民
帖 子:42
专家分:49
注 册:2011-10-22
收藏
得分:0 
回复 3楼 不哭5死神
有点儿像我最初的想法,,,,
可我只定义了一个字符数组a[4],
在 for(i=0;i<4;i++)
         b[i]=(a[i]-'0'+9)%10;
只是简单的写成a[i]=(a[i]+9)%10;
然后直接进行交换,,
结果就当成字符数组输出,
输出的结果有空格有梅花有方块的,,

所以请求,为什么要减个‘0’啊
2012-04-07 22:36
忆泪
Rank: 2
等 级:论坛游民
帖 子:42
专家分:49
注 册:2011-10-22
收藏
得分:0 
回复 5楼 cuijunchao
多谢指教,看起来确实有点儿费劲,,不过我个人觉得我自己的逻辑还是正确的,而且经过上机运行可以输出正确答案,,
多谢指教
2012-04-07 22:38
忆泪
Rank: 2
等 级:论坛游民
帖 子:42
专家分:49
注 册:2011-10-22
收藏
得分:0 
回复 8楼 cuijunchao
事实证明人家是对的,你自己这么说,自己实践了吗,唉,,,不要老是说人家的错错,你若明确指出那点儿错了,我们也接受,可是你说的也太笼统了吧,我真怀疑你到底懂不懂
2012-04-07 22:42
快速回复:输入一个四位正整数,将其加密后输出。
数据加载中...
 
   



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

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