694861283 发表于 2014-12-3 15:32:15

我写的代码没通过,网上百度的通过了?

#include <stdio.h>
#include <string.h>
int main()
{
      char s;
      int i;
      while(gets(s)){
                for(i=strlen(s)-1;i>=0;i--)
                        if(s>='0'&&s<='9')
                              putchar('9'-s+'0');
                        else if(s>='a'&&s<='z')
                              putchar(s-32);else if(s>='A'&&s<='Z')
                              putchar(s+32);else
                              putchar(s);
      printf("\n");
      }

      return 0;
}

这个是网上百度的(在上面)


#include<stdio.h>
#include<string.h>
int main()
{
      int a,b,d,e,f,max,sum,g,h;
      char c;

      


                while(scanf("%s",c)!=EOF)
                {

      
               
                for(g=0;c!='\0';g++)
                {
                        if(c>='a'&&c<='z')
                        {

                              c=c-32;
                        }
                        else if(c>='A'&&c<='Z')
                        {
                              c=c+32;
                        }
               
               
               
      
                }
                h=strlen(c)-1;
                for(;h>=0;h--)
                {
                        printf("%c",c);
                }
                printf("\n");
               


                }

      

      return 0;
      
}


这是我自己写的,鱼C快帮帮忙,我写了一下午了,功能明明都差不多,为什么我这个题目不能通过检测?
这是个把大写换成小写,然后数字变换的程序,希望大家能帮我分析出两者有区别?

漠水 发表于 2014-12-4 12:22:55

我想问一下你的while(gets(s))用什么结束while循环?没有判定的吧

694861283 发表于 2014-12-4 17:59:56

漠水 发表于 2014-12-4 12:22
我想问一下你的while(gets(s))用什么结束while循环?没有判定的吧

第一个是百度的,我粘贴过去竟然通过了,我的却不可以,百思不得其解。
两个程序也都可以运行。
while可以输入多组字符串,一直循环下去,不必结束嘛。
跟我那个结束EOF一样嘛。

Mr.屎壳螂 发表于 2014-12-4 23:09:32

检测不通过,说明有特殊值不对,,
我试了几个值,我发现,两个程序的对数字0的输出不一样,
你看看你的顺着你的思路走0的输出是不是有问题
页: [1]
查看完整版本: 我写的代码没通过,网上百度的通过了?