C语言 请问为什么答案是 Quick C?

如题所述

是QuickC


    strcmp(a,b) 依次比较每个字符的 ascii 值,i 是有效下标,a[i] > b[i] 则返回 > 0, a[i] == b[i] 则继续,a[i] < b[i] 则返回 <0,最后都相等则返回 0

    main函数所做的就是把输入的字符中 “最大”的 printf出来

    这样只有QuickC的 Q 是最大的。所以答案就是QuickC

    如果还有QuickD的话,那答案变成QuickD了。

追问

怎么判断出是找ascii排序最大的字符串的?表示步骤我看不大懂T_T

追答

是这条语句,但具体一个字符一个字符的比较是交给strcmp去做的。

//如果 temp的 ascii 排序小于 str的话则为真。
if (strcmp(temp, str) < 0)
{
    //把 str 的值复制给 temp。
    strcpy(temp, str);
}

看懂不了不?

温馨提示:答案为网友推荐,仅供参考
第1个回答  2015-07-20
根据程序段可知,该程序的功能是找出ascii排序最大的字符串,
我们知道Ada<BASIC<C++<Pascal<Quick
所以最后输出Quick追问

怎么判断出是找ascii排序最大的字符串的?表示步骤我看不大懂T_T

追答

比如Ada和BASIC进行比较,由于A小于B,所以Ada小于BASIC,同理,其他也是这样一个个比较的,知道对应位置不相同有个大小

strcmp函数就是用来比较字符串的,如果返回值小于0则第一个字符串小于第二个字符串

strcpy函数是复制函数,把第二个参数复制到第一个参数地址中

追问

一开始输入时是不是
C++输入给了temp
basic输入给了str
通过循环,留下了ascii码值大的,然后再和后来输入的字符比较串?

字符串比较

追答

是的,过程就是这样的。

追问

嗯嗯,多谢多谢^_^

本回答被提问者采纳