C语言输出的结果冗余

img

请问大家左面我的做法为什么输出不了正确的结果呢?右面是标准答案!!谢谢大家!

return s - i - 1;
return t - j - 1;
因为你还有一个\0呢
另外,一个细节,1st,不是1th 2nd不是2th

不知道你这个问题是否已经解决, 如果还没有解决的话:
  • 这个问题的回答你可以参考下: https://ask.csdn.net/questions/726297
  • 我还给你找了一篇非常好的博客,你可以看看是否有帮助,链接:为什么一定要对局部变量初始化,希望大家都避免这个错误!
  • 除此之外, 这篇博客: 【C语言初阶笔记重点】最详细的数组知识总结,超多干货!!(带三大应用实例)中的 一维数组的使用 部分也许能够解决你的问题, 你可以仔细阅读以下内容或者直接跳转源博客中阅读:

    对于数组的使用我们之前介绍了一个操作符: [ ] ,下标引用操作符。它其实就数组访问的操作符。 我们来看代码:

    #include <stdio.h>
    int main()
    {
     int arr[10] = {0};//数组的不完全初始化
        //计算数组的元素个数
        int sz = sizeof(arr)/sizeof(arr[0]);
     //对数组内容赋值,数组是使用下标来访问的,下标从0开始。所以:
     int i = 0;//做下标
     for(i=0; i<10; i++)
     {
     arr[i] = i;
     } 
     //输出数组的内容
     for(i=0; i<10; ++i)
     {
     printf("%d ", arr[i]);
     }
     return 0;
    }
    

    总结:

    1. 数组是使用下标来访问的,下标是从0开始。

    2. 数组的大小可以通过计算得到。


如果你已经解决了该问题, 非常希望你能够分享一下解决方案, 写成博客, 将相关链接放在评论区, 以帮助更多的人 ^-^