• 首页
  • 资讯
  • 专家
  • 话题
  • 问题库
  • 礼品商店
  • 分类
    • 新闻资讯
    • 娱乐八卦
    • 3C数码
    • 医疗健康
    • 健康养生
    • 云盘解析
    首页   ›   正文

请问为什么这个程序输出都为1,与输入s1和s2无关

2021-12-06 21:41
796  2
IT网络 未结
关注
树友7oijsp
树友7oijsp 2021-12-06 21:41
相关标签:
2条回答
  • 在崩溃边缘
    2021-12-06 22:24

    数组比较,要比较它的内容的而不是直接比较它的变量(这个是地址)

    你s1与s2直接比较,因为s1比s2先定义,s1>s2永远成立的,与你输入的内容没有任何关系的

    如果你是

    char s2[100],s1[100];

    那结果永远是-1

    所以你程序完全不对

    以下参考(方法有多种的,而实际库函数用的是指针,更简单、效率更高)

    int Strcmp(char s1[],char s2[])
    {
    int s=0;
    for(int i=0; s1[i] && s2[i]; i++) {
    if (s1[i]>s2[i]) {
    s=1;
    break;
    } else {
    if (s1[i]s=-1;
    break;
    }
    }
    return s;
    }


    0
  • 迷人的小宝
    2021-12-06 22:30

    你是自编的字条串比较函数,但算法不对,只对你的int Strcmp(char s1[],char s2[]) 函数进行了修改。整个程序如下:

    #include
    using namespace std;
    int Strcmp(char s1[],char s2[])
    {
       char *p;
       char *q;  
       p = s1;
       q = s2;
       while(*p!='\0'  && *q!='\0')
       {
           if(*p==*q)
          {
                p++;
                q++;
          }
           else if(*p>*q)
            {
               return 1;    
            }
           else
           {
               return -1;
           }
       }
       if(*p=='\0' && *q =='\0')
       {
           return 0;
       }
       if(*p=='\0' && *q !='\0')
       {
           return -1;
       }
       if(*p!='\0' && *q =='\0')
       {
           return 1;
       }
    }
    int main(){
    char s1[100],s2[100];
    printf("请输入数组s1:");
    gets(s1);
    printf("请输入数组s2:");
    gets(s2);
    printf("-----字符串比较的结果------\n");
    printf("%d\n",Strcmp(s1,s2));
    return 0;
    }

    程序的三种运行例如下:


    0
 看不清?
提交回复

如本站内容“对您有用”,欢迎随意打赏,让我们持续更新!

打赏
游客
登录后展示个人签名去登录
0文章 0问题 0回答 0点赞
写作
发布问题
发布文章
关注微信
加QQ群
随机文章
美国一家五口被龙卷风吹到邻居家 都被吹飞起来了:多地建筑房屋被夷为平地
2021-12-15 08:29:35
RX 7000都要来了!RTX 3060 Ti新卡曝光:会玩 GDDR6X显存频率暴增
2023-04-05 09:09:09
长时间玩手机竟引发脑梗!这几种恶习 真不是闹着玩的
2022-03-17 09:20:21
桑白皮的功效与作用及食用方法 桑白皮的食用方法
2022-02-19 09:18:07
终结骁龙8发热!努比亚Z4 Pro首发航天级均温板:导热性增高300倍
2022-02-24 17:40:40
新版红绿灯上热搜 为何惹“众怒”?设计者开直播被网友抵制无奈关播:请理性
2022-12-28 11:37:51
票房破2亿元 豆瓣年度评分最高华语电影!《雄狮少年》宣布密钥延期
2022-02-19 08:55:09
关晓彤代言!华为P50 Pocket全方位真机揭晓:化妆盒般精致、两块屏幕
2021-12-17 08:50:35
工信部:前三季度全国累计建设开通5G基站69万个
2021-12-05 22:46:48
三星代工产能已提升:但没挽回高通 最终让给了台积电
2022-03-21 08:11:36
吃海鲜喝什么酒 吃海鲜适合喝哪种酒
2022-02-19 08:56:04
“世嘉”品牌退出街机历史舞台 现改名为GiGO
2022-02-19 08:34:21
甘蔗上火还是降火 甘蔗的吃法
2022-02-19 08:42:26
干桂圆泡水的正确方法 干桂圆的功效与作用
2021-12-05 23:25:41
周星驰《美人鱼2》计划今年Q4上映 艾伦林允主演
2022-08-26 14:20:41
热门标签
智能手机为何越卖越贵 马斯克加速抢滩一文了解脑机接口 凛冬将至苹果还能靠iphone支撑多久 新野蛮人马斯克 630wrtx 4090解锁极限功耗 马斯克没有打价格战的基因 ipad营收锐减卖不动了 小米13 lite现身小米13家族最便宜版本 感受守护网络安全的黑科技app 感受守护网络安全的黑科技 新一代影像性能旗舰努比亚z50官宣 黑亚当纽约首映式 黑亚当创下巨石强森个人最好成绩 超人归来电影免费观看 超人回归dc 超人回归 贝鲁奇谈贝鲁奇 辐射剧集首张剧照 大超与白狼不可兼得 用废品造的iphone你会买单吗
Copyright © 2025 网站备案号: 闽ICP备2020021158号-10 本站所有信息来自于互联网或网友上传,如有侵权,敬请来信联系我们,1494738443@qq.com 我们立刻删除。
responsive_hankin 主题. Designed by 极速问答社区
赞赏作者

请通过微信、支付宝 APP 扫一扫

感谢您对作者的支持!

 支付宝 微信支付