vb 高手进~~~

来源:百度知道 编辑:UC知道 时间:2024/06/16 18:29:51
帮个忙撒!
#include<stdio.h>
void main()
{
char s[81];
int m1=0,m2=1,i;
printf("Please input text:\n");
gets(s);
printf("Input password(1~255):\n");
scanf("%d",&m1);
for(i=0;s[i]='\0';i++)
s[i]^=m1;
printf("Output enciphered text:\n%s\n",s);
printf("Input password:\n");
scanf("%d",&m2);
for(i=0;s[i]!='\0';i++)
s[i]^=m2;
printf("Output deciphered text:\n%s\n",s);
if(m1!=m2){
printf("Invalid password ");
printf("Deciphered text is't original text!");
}
}
上述是书本265页例10.10的例题.但这段程序调试的结果不是书上的结果的,不知道错在哪呢,我已经对了好几次了都跟书上的是一样的.不知道是不是书上自己写错了.
书上好像有!但是书上是for(i=0;

#include<stdio.h>
void main()
{
char s[81];
int m1=0,m2=1,i;
printf("Please input text:\n");
gets(s);
printf("Input password(1~255):\n");
scanf("%d",&m1);
for(i=0;s[i]='\0';i++) //这是for(i=0;s[i]!='\0';i++)吧,书上打错了
s[i]^=m1;
printf("Output enciphered text:\n%s\n",s);
printf("Input password:\n");
scanf("%d",&m2);
for(i=0;s[i]!='\0';i++)
s[i]^=m2;
printf("Output deciphered text:\n%s\n",s);
if(m1!=m2){
printf("Invalid password ");
printf("Deciphered text is't original text!");
}
}
补充的是正确的,输入文本,输入2次密码,然后对这2次密码加密,分别产生加密结果,如果2次加密的结果不同,加密失败。你可以上机试一下啊,多上机调试对编程的学习是非常有益的