C++代码 运行结果中出现-858993459怎么回事 急啊 帮帮忙

来源:百度知道 编辑:UC知道 时间:2024/05/31 18:06:35
#include<stdio.h>
int main()
{
int i=0,j=0;
char m[8],k[8];
int m1[64],l0[32],r0[32],er0[48],er1[48],s11[6],s21[6],s31[6],s41[6],s51[6],s61[6],s71[6],s81[6],s[8],temp1[8],temp2[8],temp4[4],f[32],frk[32],l1[32],r1[32];//明文加密用到的数组
int mm[64],kk[64],k1[48],C0[28],D0[28],C1[28],D1[28],A[56];//子密钥生成用到的数组
int PC_1[56]={57,49,41,33,25,17,9,1,58,50,42,34,26,18,10,2,59,51,43,35,27,19,11,3,60,52,44,36,63,55,47,39,31,23,15,7,62,54,46,38,30,22,14,6,61,53,45,37,29,21,13,5,28,20,12,4};//置换选择PC_1
int PC_2[48]={14,17,11,24,1,5,3,28,15,6,21,10,23,19,12,4,26,8,16,7,27,20,13,2,41,52,31,37,47,55,30,40,51,45,33,48,44,49,39,56,34,53,46,42,50,36,29,32};//置换选择PC_2
int LS[16]={1,1,2,2,2,2,2,2,1,2,2,2,2,2,2,1};//循环左移ls
int IP[64]={58,50,42,34,26,18,10,2,60,52,44,36,28,20,12,4,62,54,46,38,30,22,14,6,64,56,48,40,32,24,16,8,57,49,41,33,25,17,9,1,59,51,43,35,27,19,11,3,61,53,45,37,29,21,13,5,63,55,47,39,31,23,15,7};//IP置换
int IP_1[64]={40,8,48,16,56,24

看不懂你这程序,哪里有输出啊,不过看起来挺复杂的,好像是个什么加密算法一样,不过你说的程序输出那个-858993459一般应该是因为你输出的那个变量对应的地址错误了,比如输出a等于-858993459,那么很可能是没有对a赋值,比如我写个输出-858993459的程序你就明白了:
#include<iostream.h>
int main()
{
int i;
cout<<i<<endl;
return 0;
}
这个程序就输出-858993459,因为这里的i根本就没有值,所以 内存中的一个无效值(也可能是以前内存中占有的值吧)。你看看你程序中输出-858993459这个数对应的数的赋值情况就知道了。或许数组越界也可能吧。
#include<iostream.h>
int main()
{
int i[4]={1,2,3,4};
cout<<i[4]<<endl;
return 0;
}这个程序输出不是-858993459,但也是内存中一个数,也是个不知道什么数的数。

你这个输出结果 是随机数 可能是指针没有指向正确的数组位置 或者输出的不是数值而是数组的地址 应该是这方面的错误

你程序没写完吧,全都是定义数组啊、、

程序没粘完,不过我找出错误在哪了。
小女子谢谢各位啦啊!

呼~~~~~~~呼~~~~~~~~~