这个代码哪里错了

这个代码哪里错了加密正整数(最大九位)num,在num的每一个数字上加一个数字k(k由键盘输入,在1~9之间),加了k后num的各数字仍然在[0,9]范围内。若k=3,则... 这个代码哪里错了加密正整数(最大九位) num,在num的每一个数字上加一个数字k(k由键盘输入,在1~9之间),加了k后num的各数字仍然在[0,9]范围内。若k=3,则0-->3,1-->4....8-->1,9-->2。原num为567890,新num为890123。
注:不考虑高位数字加密变成0后,造成整数位数变少的情况。
展开
 我来答
fallx
2018-04-26 · TA获得超过5485个赞
知道大有可为答主
回答量:2321
采纳率:73%
帮助的人:724万
展开全部

见有时间,直接给你写了一个!真的不愿看那些图片代码!!

见有点时间,直接给你写了一个。原谅我不想你的图片代码!!!
/*
(重要的事情说三遍!!!)
温馨提示:程序代码有问题的,提问题时请尽量把代码贴出来,贴个图真的很不方便调试查找问题!
温馨提示:程序代码有问题的,提问题时请尽量把代码贴出来,贴个图真的很不方便调试查找问题!
温馨提示:程序代码有问题的,提问题时请尽量把代码贴出来,贴个图真的很不方便调试查找问题!
*/
#include<stdio.h>
#define MAX 256 

void encrypt(char *p,int n);
void decrypt(char *p,int n);
int main()
{
char  num[MAX];
int k=0;

printf("输入被加密的整数:\n");
scanf("%s",&num);//将整数当字符输入并保存成字符数组
printf("输入加密因子:\n");
scanf("%d",&k);
encrypt(num,k);
printf("加密结果:%s\n",num);
decrypt(num,k);
printf("解密结果:%s\n",num);

return 0;
}

//-----------------------------------
void encrypt(char *p,int n)
{
while(*p!='\0')
{
*p=*p + n;//利用ascii码直接加减得出结果
if(*p>'9')
*p=*p-10; //满十处理
//printf("%c ",*p );//调试用
p++;
}
}

void decrypt(char *p,int n)
{
while(*p!='\0')
{
if(*p-'0'<n)
*p=*p+10; //满十处理
*p=*p-n;
//printf("%c ",*p );//调试用
p++;
}
}

AiPPT
2024-09-19 广告
随着AI技术的飞速发展,如今市面上涌现了许多实用易操作的AI生成工具1、简介:AiPPT: 这款AI工具智能理解用户输入的主题,提供“AI智能生成”和“导入本地大纲”的选项,生成的PPT内容丰富多样,可自由编辑和添加元素,图表类型包括柱状图... 点击进入详情页
本回答由AiPPT提供
金色潜鸟
2018-04-26 · TA获得超过3.2万个赞
知道大有可为答主
回答量:1.3万
采纳率:89%
帮助的人:5702万
展开全部
输出部分错了。输入语句有逗号,输入数据时要有逗号。改了一下:
#include <stdio.h>
int main ( )
{
int num,a[10],b[10],i=0,j=0,k,m,d;
scanf("%d,%d",&num,&k);
while(num>0){
d = num%10+k;
if (d>=10) b[j]=(d-10);
else b[j]=d;
j++;
num/=10;
}
m=j;
for (i=0;i<m;i++) printf("%d",b[i]);
};
数值太大 会有问题,改用字符串,则不管多少位都没问题,例如100位:
#include <stdio.h>
int main ( )
{
char s[100],k;
int i,L;
printf("input num:\n");
scanf("%s",s); L=strlen(s);
printf("\ninput k between 1 and 9: \n");
scanf("%d",&k);
for (i=0;i<L;i++){
s[i]=(s[i]-'0'+k)%10 + '0';
}
printf("%s",s);
return 0;
}
追问
这样是倒序输出啊
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
WuYunJieGo
2018-04-26 · TA获得超过108个赞
知道答主
回答量:246
采纳率:32%
帮助的人:30.4万
展开全部
你能不能发一下编译器的错误提示?
追问
没错,输出总是0
追答
你为什么要用手机写,建议用电脑上的devc++
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
爱倪的硪嘚僾
2018-04-26 · TA获得超过134个赞
知道答主
回答量:253
采纳率:31%
帮助的人:50.9万
展开全部
你这个超出十不进位了?。。。你能解密么
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(2)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式