永发信息网

帮忙调试个程序

答案:2  悬赏:10  手机版
解决时间 2021-05-18 08:23

//给一个4位整数加密。方法:每一位加5再除以10得的余数,然后将第1,4换位置,第2,3换位置
#define N 5
#include<iostream>
using namespace std;
void main()
{
char aa[N],*p;int s=0,bb[5],t,i;
cout<<"输入4位整数:"<<endl;
cin>>aa[N];
p=aa;
for(i=0;i<N-1;i++)//加密
{
*p+=5;s=(*p)%10;
bb[5]=s;
}
for(i=0;i<N-1;i++)
{
t=bb[i];bb[i]=bb[N-i-2];bb[N-i-2]=t;//换位
}
for(i=0;i<N-1;i++)
cout<<"The NO. after arrange"<<bb[i]<<endl;
}

以上的得不到预期结果,问题出在哪?

最佳答案

楼主你的代码问题很多。。。
1.cin>>aa[N]; //实际上是读入一个字符保存到aa[5]中,而数组aa最大的下标是4,并没有aa[5]这个元素;
2.在for循环中指针p并没有改变,在每一次循环里都是指向aa的第一个元素a[0];
3.因为是把数字作为字符来读入的,所以在进行处理里要先减去'0'的值才能得到实际的数字;
4.在交换位置的循环次数多了,交换完后又交换回去了,等于没有交换。

#include <iostream>


using namespace std;


#define N 4


int main()
{
char aa[N + 1], *p, t;
int i;
cout << "输入4位整数:" << endl;
cin >> aa;
p = aa;
for(i = 0; i < N; ++i)
*p++ = (*p - '0' + 5) % 10 + '0';
for(i = 0; i < N / 2; ++i)
{
t = aa[i];
aa[i] = aa[N - i - 1];
aa[N - i - 1] = t;
}
cout << "The NO. after arrange:" << aa << endl;
return 0;
}

全部回答

#define N 4

#include<iostream> using namespace std; void main() { char aa[N],*p;int s=0,bb[N],t; cout<<"输入4位整数:"<<endl; cin>>aa[N]; p=aa; for(int i=0;i<N;i++)//加密 { *p+=5;s=(*p)%10; bb[i]=s; } for(int i=0;i<N;i++) { t=bb[i];

bb[i]=bb[N-i-1];

bb[N-i-1]=t;//换位 } for(int i=0;i<N;i++) cout<<"The NO. after arrange"<<bb[i]<<endl; }

我要举报
如以上问答信息为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
大家都在看
网易接手魔兽世界后能改名字吗?
wo 我 家你对好 吗
餐饮晨会口号有气势,急求火锅店早会口号
洪山区武汉宜家酒店(软件园路)在哪里啊,我有
什么时候能开通好友买卖?
人能做到么
联通3G信号怎么样??有没有人用过
蔡甸区武汉常福五金日杂水暖这个地址怎么能查
鬼畜视频这么制作
请问手机N78打开照片是空的想删除就提示。系
mx400iii的问题~~
./,最近头发掉的特别厉害,一洗头,脸池里粘一
阿含是什么意思,坐飞机经济舱包含意外险吗
苏仙区郴州品味生活馆地址是什么,有没有知道
电脑不能连网
推荐资讯
大乐斗有收徒弟的吗
农场在手机上怎样玩?
现在又加免费种子的花种了吗?
绵阳e71水货多少钱?
到医院B超照肾要多少钱
团风县黄冈保济堂大药房地址在哪,我要去那里
网页打开慢怎么办
禹州市许昌爱尚空间在什么地方啊,我要过去处
关于赞美珊瑚的句子,描写珊瑚的句子
谁有祛痘妙招???
这是陈奕迅什么歌?
问问都可以提问什么样的问题?
正方形一边上任一点到这个正方形两条对角线的
阴历怎么看 ?