首页 新闻 会员 周边 捐助

open上的一道题 1.7字符串 最后一题 感觉可以了 但是给了八分 是在看不出来了 求助大佬

0
悬赏园豆:10 [已解决问题] 解决于 2018-12-13 22:40
#include<stdio.h>
#include<string.h>
int main()
{
  int i,j,k,l,m,n,o,p,q;
  char a[1100];
  scanf("%d %d %d",&o,&p,&q);
  scanf("%s",a);
  l=strlen(a);
  for(i=0;i<l;i++)
    {
      if(a[i]!='-')
         {
           printf("%c",a[i]);
         }
      else
         {
         if(a[i+1]!='-'&&a[i+1]!='\0')
         {
            if(a[i-1]>=a[i+1])
              {
                printf("%c",a[i]);
              }
            else
              {
                if((a[i-1]>='a'&&a[i-1]<='z'&&a[i+1]>='a'&&a[i+1]<='z')||(a[i+1]>='0'&&a[i+1]<='9'&&a[i-1]>='0'&&a[i-1]<='9')&&a[i+1]>a[i-1])
                   {
                       m=a[i+1]-a[i-1];
                       if(q==1)
                          {
                             if(o==1)
                              {
                                for(j=0;j<m-1;j++)
                                  {
                                     for(k=0;k<p;k++)
                                       {
                                         printf("%c",a[i-1]+j+1);
                                       }
                                  }
                              }
                             else if(o==2)
                              {
                                for(j=0;j<m-1;j++)
                                  {
                                    if(a[i-1]>='0'&&a[i-1]<='9')
                                        {
                                             for(k=0;k<p;k++)
                                               {
                                                 printf("%c",a[i-1]+j+1);
                                               }
                                        }
                                   else
                                        {
                                             for(k=0;k<p;k++)
                                                {
                                                 printf("%c",a[i-1]+j-31);
                                                }
                                        }

                                  }
                              }
                            else
                            {
                                  for(j=0;j<m-1;j++)
                                    {
                                      for(k=0;k<p;k++)
                                       {
                                         printf("%c",'*');
                                       }
                                    }
                            }
                         }
                    if(q==2)
                      {
                             if(o==1)
                              {
                                for(j=m-2;j>=0;j--)
                                  {
                                     for(k=0;k<p;k++)
                                       {
                                         printf("%c",a[i-1]+j+1);
                                       }
                                  }
                              }
                             else if(o==2)
                              {
                                for(j=m-2;j>=0;j--)
                                  {
                                    if(a[i-1]>='0'&&a[i-1]<='9')
                                        {
                                             for(k=0;k<p;k++)
                                               {
                                                 printf("%c",a[i-1]+j+1);
                                               }
                                        }
                                   else
                                        {
                                             for(k=0;k<p;k++)
                                                {
                                                 printf("%c",a[i-1]+j-31);
                                                }
                                        }

                                  }
                              }
                            else
                            {
                                  for(j=0;j<m-1;j++)
                                    {
                                      for(k=0;k<p;k++)
                                       {
                                         printf("%c",'*');
                                       }
                                    }
                            }
                         }
                }
             else
                printf("%c",a[i]);
           }
        }
        if(a[l-1]=='-')
        {
         printf("%c",a[l-1]);
        }
      }
    }
}
打着玩的主页 打着玩 | 初学一级 | 园豆:132
提问于:2018-12-09 21:43

你不能这样,需要自己思考找到问题,靠别人给你找,你进步很慢的。

Shendu.CC 5年前

@Shendu.CC: 好的

打着玩 5年前

@Shendu.CC: 请教一个输入问题 我想输入一些字母 就像矩阵那样 所以我定义一个二维字符串 我用两个循环 输入(就是向那个输入矩阵那样) 我用 scanf(“%c”,&a[i][j])他就不行 ,但用cin那个输入就行 或者 scanf(“ %c”,&a[i][j])也对 ,这是为啥啊 为啥%c前面加个空格就对了?

打着玩 5年前
< >
分享
最佳答案
0

如果输入二维字符数组,那么最好的输入方式是这样的:

char a[1005][1005];
for(int i = 0;i<1005;i++)
{
   scanf("%s",a[i]);
}

至于你的scanf("%c",&a[i][j])出问题是因为,输入数据是有换行的,%c 会把换行读入进去,所以会读入有错误。

收获园豆:10
Shendu.CC | 老鸟四级 |园豆:2138 | 2018-12-12 14:09

这个题我已经解决了 自己改对了 从八分到了十分 

我说的输入是输入这个        a b x

                                    c d e

                                     f g h    

这样的矩阵 这按照 您那样  空格 是读不了的 输入不到这样的数据

打着玩 | 园豆:132 (初学一级) | 2018-12-12 22:29

@打着玩: 那你用scanf("%c\n",&a[I][j])

Shendu.CC | 园豆:2138 (老鸟四级) | 2018-12-13 10:18

大佬你好强啊,每次都能知道症结所在!

古宇 | 园豆:476 (菜鸟二级) | 2018-12-13 15:56

@Shendu.CC: 大佬 问一下 链表如何删除一个想要删除的 元素 然后在输出 为啥我总是少最后一个元素出不来

打着玩 | 园豆:132 (初学一级) | 2018-12-13 22:41
清除回答草稿
   您需要登录以后才能回答,未注册用户请先注册