浙大版《C语言程序设计(第4版)》题目集参考答案
本题要求实现函数,可以根据下表查找到星期,返回对应的序号。
序号 | 星期 |
---|---|
0 | Sunday |
1 | Monday |
2 | Tuesday |
3 | Wednesday |
4 | Thursday |
5 | Friday |
6 | Saturday |
函数接口定义:
int getindex( char *s );
函数getindex
应返回字符串s
序号。如果传入的参数s
不是一个代表星期的字符串,则返回-1。
裁判测试程序样例:
#include <stdio.h>
#include <string.h>
#define MAXS 80
int getindex( char *s );
int main()
{
int n;
char s[MAXS];
scanf("%s", s);
n = getindex(s);
if ( n==-1 ) printf("wrong input!\n");
else printf("%d\n", n);
return 0;
}
/* 你的代码将被嵌在这里 */
输入样例1:
Tuesday
输出样例1:
2
输入样例2:
today
输出样例2:
wrong input!
提交结果:
基本思路:
利用库函数strcmp比较字符串
代码实现:
1.
int getindex(char* s)
{
const char* pc[7] = {"Sunday","Monday","Tuesday" , "Wednesday","Thursday", "Friday" ,"Saturday"};
for (int i = 0; i < 7; i++)
{
if (strcmp(s, pc[i]) == 0)
{
return i;
}
}
return -1;
}
2.
int getindex(char* s)
{
if (strcmp(s, "Sunday") == 0)
{
return 0;
}
else if (strcmp(s, "Monday") == 0)
{
return 1;
}
else if (strcmp(s, "Tuesday") == 0)
{
return 2;
}
else if (strcmp(s, "Wednesday") == 0)
{
return 3;
}
else if (strcmp(s, "Thursday") == 0)
{
return 4;
}
else if (strcmp(s, "Friday") == 0)
{
return 5;
}
else if (strcmp(s, "Saturday") == 0)
{
return 6;
}
else
{
return -1;
}
}
欢迎提问和纠错,共同讨论一起进步!