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

请问为什么把函数部分的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 各位请问平行检验趋势图这样要怎么调整?说标准差差异太大了
  • ¥15 delphi webbrowser组件网页下拉菜单自动选择问题
  • ¥15 wpf界面一直接收PLC给过来的信号,导致UI界面操作起来会卡顿
  • ¥15 init i2c:2 freq:100000[MAIXPY]: find ov2640[MAIXPY]: find ov sensor是main文件哪里有问题吗
  • ¥15 运动想象脑电信号数据集.vhdr
  • ¥15 三因素重复测量数据R语句编写,不存在交互作用
  • ¥15 微信会员卡等级和折扣规则
  • ¥15 微信公众平台自制会员卡可以通过收款码收款码收款进行自动积分吗
  • ¥15 随身WiFi网络灯亮但是没有网络,如何解决?
  • ¥15 gdf格式的脑电数据如何处理matlab