gpt4 book ai didi

c - 为什么我的凯撒密码不能运行?

转载 作者:太空宇宙 更新时间:2023-11-04 05:36:50 24 4
gpt4 key购买 nike

#include<stdio.h>
int main()
{
int amount,i;
char message[81],encry[81];
printf("Enter message to be encrypted : ");
gets(message);
printf("Enter shift amount (1-25) : ");
scanf("%d");
for(i=0;message!='\0';i++)
{
if(message[i] >='A' && message[i] <='Z')
encry[i]=((message[i]-'A')+amount)%26+'A';
}
printf("Encrypted message : ");
int j;
for(j=0;message[j]!='\0';j++)
printf("%c",encry[j]);

return 0;}

我试着写一个凯撒密码,但它无法运行。请帮我。谢谢。

最佳答案

1

 printf("Enter shift amount (1-25) : ");
scanf("%d");
^ missing variable here (you need to pass an argument of type int *)

那你要把输入键放在哪里?

您需要像这样在 amount 变量中输入 -

 printf("Enter shift amount (1-25) : ");
scanf("%d",&amount);

所以,您没有在 amount 中存储任何内容,它是未初始化的。您使用它,因此它会导致未定义的行为。

2. 在这个循环中——

 for(i=0;message!='\0';i++)      // you compare here char * with char

条件应该是-

 for(i=0;message[i]!='\0';i++)

3. 不要使用gets 获取输入,它不会防止溢出。使用 fgets -

fgets(message,81,stdin);

关于c - 为什么我的凯撒密码不能运行?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32805246/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com