三年级Z组 2023-02-02 17:34 采纳率: 63.6%
浏览 38
已结题

牛客网NC16644


  #include <iostream>
#include <string.h>
using namespace std;
int main()
{
    int p1,p2,p3,x;
    cin>>p1>>p2>>p3;
    char a[100];
    cin>>a;
    x=strlen(a);
    int i,j;
    char b,c,d;
    for(i=0;i<x;i++)
    { 
        if(a[i]!='-')cout<<a[i];
        if(a[i]=='-'){
            b=a[i-1],c=a[i+1];
            for(;++b<c;)
            {
                if(p1==1,p3==1)
                {
                    if(65<=b&&b<=90)
                    {
                        b=b+32,c=c+32;
                        d=b+1;
                        for(j=0;j<p2;j++)cout<<d;
                        b++;
                    }
                    else {
                        d=b+1;
                    for(j=0;j<p2;j++)cout<<d;
                    b++;}
                }
                if(p1==2,p3==1)
                {
                    if(97<=b&&b<=122)
                    {
                        b=b-32,c=c-32;
                        d=b+1;
                        for(j=0;j<p2;j++)cout<<d;
                        b++;
                    }
                    else {
                        d=b+1;
                    for(j=0;j<p2;j++)cout<<d;
                    b++;}
                }
                if(p1==1,p3==2)
                {
                    if(65<=b&&b<=90)
                    {
                        b=b+32,c=c+32;
                        d=c-1;
                        for(j=0;j<p2;j++)cout<<d;
                        c--;
                    }
                    else {
                        d=c-1;
                    for(j=0;j<p2;j++)cout<<d;
                    c--;}
                }
                if(p1==2,p3==2)
                {
                    if(97<=b&&b<=122)
                    {
                        b=b-32,c=c-32;
                        d=c-1;
                        for(j=0;j<p2;j++)cout<<d;
                        c--;
                    }
                    else {
                        d=c-1;
                    for(j=0;j<p2;j++)cout<<d;
                    c--;}
                }
            }
        }
    }
}

我自己检查了很久,找不到错误在哪,编码没问题,运行出错,输入1 2 1,a-d,结果是accDDd
思路是遇到“-”,就直接分类输出,p1=3情况还未考虑进去

  • 写回答

4条回答 默认 最新

  • 关注

    看了一下题目要求,你的代码有几个问题:
    (1)题目说明字符串长度不超过100,也就是可以包括100,所以char a[100]要改大一些,比如,char a[102]
    (2)p1可取的值是1、2、3,你的代码里没有考虑p1==3的情况
    (3)if(p1==1,p3==1)这种,括号里是逗号表达式,返回结果是p3==1的结果,与p1==1没有关系,应该改成 if(p1==1&& p3==1)
    你的这种代码写法逻辑容易出现混乱。for(;++b<c;)这个for循环建议用下面的结构来写:

    for (; ++b < c;)
                {
                    if (p1 == 1)
                    {
                        if (p3 == 1)
                        {
                            //
                        }
                        else if (p3 == 2)
                        {
                            //
                        }
                    }
                    else if (p1 == 2)
                    {
                        if (p3 == 1)
                        {
                            //
                        }
                        else if (p3 == 2)
                        {
                            //
                        }
                    }
                    else if (p1 == 3)
                    {
                        if (p3 == 1)
                        {
                            //
                        }
                        else if (p3 == 2)
                        {
                            //
                        }
                    }
    
    
    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论 编辑记录
查看更多回答(3条)

报告相同问题?

问题事件

  • 已结题 (查看结题原因) 2月3日
  • 已采纳回答 2月2日
  • 创建了问题 2月2日

悬赏问题

  • ¥15 请问我该如何添加自己的数据去运行蚁群算法代码
  • ¥20 用HslCommunication 连接欧姆龙 plc有时会连接失败。报异常为“未知错误”
  • ¥15 网络设备配置与管理这个该怎么弄
  • ¥20 机器学习能否像多层线性模型一样处理嵌套数据
  • ¥20 西门子S7-Graph,S7-300,梯形图
  • ¥50 用易语言http 访问不了网页
  • ¥50 safari浏览器fetch提交数据后数据丢失问题
  • ¥15 matlab不知道怎么改,求解答!!
  • ¥15 永磁直线电机的电流环pi调不出来
  • ¥15 用stata实现聚类的代码