NeQrhk
2015-04-09 08:51
采纳率: 30.6%
浏览 1.5k
已采纳

一个c语言解密的问题运行没结果

一个解密的程序,运行的时候没有结果,错误,编译没有错误
#include
#include
char jiemi(char a[])//吧所有字母都向前移动5位,得出明文
{
int i=0;
while(a[i]!='\0')
{
if(a[i]==','||a[i]==' ')
{
i++;
}
else
{
a[i]=a[i]-5;
i++;
}
}
return 0;
}
int main()//遇到start开始输入数据,遇到end 打印数据
//遇到 ENDINPUT 程序结束
{
char a[201]={0};
char c[11]={0};
char str1[6]="start";
char str2[4]="end";
char str3[11]="ENDOINPUT";
while(1)
{
scanf("%s",c);//c start
if(strcmp(c,str1)==0)
{
scanf("%s",a);
jiemi(a);
}
scanf("%s",c);//b end
if(strcmp(c,str2)==0)
{
printf("%s",a);
}
scanf("%s",c);
if(strcmp(c,str3)==0)
{
break;
}
}
return 0;
}

  • 写回答
  • 好问题 提建议
  • 关注问题
  • 收藏
  • 邀请回答

4条回答 默认 最新

  • 王维来 2015-04-09 10:18
    已采纳

    这个问题谭浩强的那本C语言书上有解法啊,应该是第六章的例题吧!你不能直接减5,字符a减5之后输出结果就错误了,而且应该区分大小写字母吧,这个程序不是很难的。

    已采纳该答案
    评论
    解决 无用
    打赏 举报
  • oyljerry 2015-04-09 09:03

    这个你可以单步调试跟踪一下,估计是你的算法计算有问题

    评论
    解决 无用
    打赏 举报
  • NeQrhk 2015-04-09 10:26

    可以了,是因为scanf("%s",c)输入的是一个字符串,不过c只代表了首地址,只有一个储存位置,不能存放整个字符串
    改成gets(c)就可以了

    评论
    解决 无用
    打赏 举报
  • NeQrhk 2015-04-09 10:29

    运行后可以了,这道题目是数据结构的题目
    按照我刚才写的程序可以结果正确不过运行时间有问题,不知道有没有比较快一点的算法?

    http://jmusoft.openjudge.cn/practice/0003/
    这个是题目链接。

    我的runtime wrong 代码
    #include
    #include
    char jiemi(char a[])//吧所有字母都向前移动5位,得出明文
    {
    int i=0;
    while(a[i]!='\0')
    {
    if(a[i]==','||a[i]==' ')
    {
    i++;
    }
    else if(a[i]>='E')
    {
    a[i]=a[i]-5;
    i++;
    }
    else
    {
    a[i]=a[i]+21;
    i++;
    }
    }
    return 0;
    }
    int main()//遇到start开始输入数据,遇到end 打印数据
    //遇到 ENDINPUT 程序结束
    {
    char a[201]={0};
    char c[11]={0};
    char str1[6]="START";
    char str2[4]="END";
    char str3[11]="ENDOINPUT";
    int i=0;
    while(1)
    {
    gets(c);//c start
    if(strcmp(c,str1)==0)
    {
    gets(a);
    jiemi(a);
    }
    gets(c);//b end
    if(strcmp(c,str2)==0)
    {
    printf("%s\n",a);
    }
    gets(c);
    if(strcmp(c,str3)==0)
    {
    break;
    }
    }
    return 0;
    }

    评论
    解决 无用
    打赏 举报

相关推荐 更多相似问题