题干:
函数fun的功能是比较两个字符串,如果s1=s2,则返回值0;如果s1>s2,则返回值1;如果s1<s2,则返回-1。
函数接口定义:
int fun(char a[],char b[]);
其中a
、b
是用户传入的参数。 函数比较两个字符串,如果a
=b
,则返回值0;如果a
>b
,则返回值1;如果a
<b
,则返回-1。
裁判测试程序样例:
#include "stdio.h"
#include "string.h"
int fun(char a[],char b[]);
int main()
{int t;
char s1[40],s2[40];
gets(s1); gets(s2);
t=fun(s1,s2);
printf("%d\n",t);
return 0;
}
/* 请在这里填写答案 */
输入样例:
asd
fg
输出样例:
-1
题解:
本题主要了解字符串是怎么做大小比较的,首先两个字符串作比较,先从第一个元素开始每个元素做比较,如果都相同,那么这两个字符串肯定相同,如果出现不同,则比较第一个不同元素的ASCLL码的大小关系,即可判断两个数组的大小关系。
那么明确了字符串大小比较概念后,代码就好写起来了,不过还有一个问题,观察到函数传入的参数里面只有两个数组,并未给出每个数组分别的元素个数,因此我们把循环结束条件定位 a[ i ]==0
代表的意思是 a[ i ]为空时循环结束。
代码如下:
int fun(char a[],char b[]){
for(int i=0;a[i]!=0;i++){
if(a[i]!=b[i]){
if(a[i]>b[i]){
return 1;
}
else if(a[i]<b[i]){
return -1;
}
}
}
return 0;
}