输入一个四位数,将其加密后输出。加密的规则如下:将该数每一位上的数字加9,然后除以10取余作为该位上的新数字,将千位和十位上的数字互换、百位和个位上的数字互换,组成加密后的新数字。高位若为0的也要输出。
#include<iostream>
using namespace std;
int main() {
char a[4];
cin >> a;//输入四位数
for (int i = 1; i <= 4;i++){//将该数每一位上的数字加9,然后除以10取余作为该位上的新数字
a[i] = (a[i] + 9) % 10;
}
char x;//千位和十位上的数字互换
x = a[1];
a[1] = a[3];
a[3] = x;
x = a[2];//百位和个位上的数字互换
a[2] = a[4];
a[4] = x;
cout << a << endl;//加密后输出
return 0;
}
我在在这次编程过程中才学会数组使用方法,所以我打算尝试检验数组运用是不是出错了,于是删除交换那部分
#include<iostream>
using namespace std;
int main() {
char a[4];
cin >> a;
cout << a << endl;
return 0;
}
结果运行后出现报错
我参考的是https://blog.csdn.net/Watremelon/article/details/123796149?ops_request_misc=&request_id=&biz_id=102&utm_term=a(i)&utm_medium=distribute.pc_search_result.none-task-blog-2~all~sobaiduweb~default-2-123796149.142^v66^control,201^v3^add_ask,213^v2^t3_esquery_v2&spm=1018.2226.3001.4187
这篇文章中第一幅图就是用的这个结构啊,为什么我用会报错(注:我搜过这个错误解决方法,但都是在说将循环从1开始调整为从0开始,但是我没用循环啊)
我主要想使第一个程序能成功运行,第二个作为好奇,想知道为什么。