_Phoebe__ 2022-01-08 01:07 采纳率: 96.9%
浏览 24
已结题

这个代码的运行过程不太明白 能不能解释一下捏

#include<stdio.h>
#include<string.h>'
int main(){
    char a[]="morning",t;
    int i,j=0;
    for(i=0;i<7;i++)
        if(a[j]<a[i])
        j=i;
        t=a[j];
        a[j]=a[7];
        a[7]=a[j];
        puts(a);
        return 0;
}

不理解为什么会输出mo啊 谢谢大家

  • 写回答

3条回答 默认 最新

  • 书山客 2022-01-08 02:58
    关注
    for(i=0;i<7;i++)
        if(a[j]<a[i])
          j=i;
    

    这三行获取的j表示字符串中最大字母所在下标,结果应该2
    t=a[j];
    a[j]=a[7];
    a[7]=a[j];
    这三行交换a[2]和a[7]的值,由于字符串长6,所以第七位是结束符,所以交换以后a[2]就变成了结束符
    puts(a);
    打印a遇到结束符停止,此时下标为2的位置是结束符,所以打印前两个字母mo

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论 编辑记录
查看更多回答(2条)

报告相同问题?

问题事件

  • 系统已结题 1月16日
  • 已采纳回答 1月8日
  • 创建了问题 1月8日

悬赏问题

  • ¥15 java 的protected权限 ,问题在注释里
  • ¥15 这个是哪里有问题啊?
  • ¥15 关于#vue.js#的问题:修改用户信息功能图片无法回显,数据库中只存了一张图片(相关搜索:字符串)
  • ¥15 texstudio的问题,
  • ¥15 spaceclaim模型变灰色
  • ¥15 求一份华为esight平台V300R009C00SPC200这个型号的api接口文档
  • ¥15 就很莫名其妙,本来正常的Excel,突然变成了这种一格一页
  • ¥15 字符串比较代码的漏洞
  • ¥15 欧拉系统opt目录空间使用100%
  • ¥15 ul做导航栏格式不对怎么改?