血和眼泪在一起滑落 2021-11-25 18:14 采纳率: 62.5%
浏览 19
已结题

请问为什么把函数部分的int改成void就可以了?感觉好神奇

img


我一开始的做法是:

img


结果:

img

后来在尝试过程中改成了:

#include <bits/stdc++.h>
using namespace std;
void max(char a[],int len)
{
    int i=0,j=0,p,t,c;
    for(i=0;i<len-1;i++)
    {
        p=i;
        for(j=i+1;j<len;j++)
        {
            if(a[j]<a[p]) p=j;
        }
        if(p!=i)
        {
            t=a[p];
            a[p]=a[i];
            a[i]=t;
        }
    }
}
int main()
{
    char string[81];
    int len,c;
    cin.getline(string,81);
    len=strlen(string); 
    max(string,len);
    cout<<string[len-1]<<endl;
    return 0;
}

结果:

img


为什么会这样?

  • 写回答

1条回答 默认 最新

  • 泡视界 2021-11-25 18:57
    关注

    因为你把char的值给了int,然后输入出int,则会输出这个字符的ASCII编码值。
    因此会输出一个奇怪的数。

    你将函数改为void后,不会返回任何值。但你将字符串已经按照小到大排列,因此输出最后一个字符就是最大值。
    并且字符串是char型,不会输出ASCII的编码值,而是输出字符。

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论

报告相同问题?

问题事件

  • 系统已结题 12月6日
  • 已采纳回答 11月28日
  • 创建了问题 11月25日

悬赏问题

  • ¥15 (标签-STM32|关键词-智能小车)
  • ¥20 关于#stm32#的问题,请各位专家解答!
  • ¥15 (标签-python)
  • ¥15 第一个已完成,求第二个做法
  • ¥20 搭建awx,试了很多版本都有错
  • ¥15 java corba的客户端该如何指定使用本地某个固定IP去连接服务端?
  • ¥15 activiti工作流问题,求解答
  • ¥15 有人写过RPA后台管理系统么?
  • ¥15 Bioage计算生物学年龄
  • ¥20 如何将FPGA Alveo U50恢复原来出厂设置哇?