一.
6-1 1.
(1)第一步:定义一个包含十二月的数组,定义一个空数组。
第二布:用条件语句和空数组将每月的英文按顺序输出。
2.
char *getmonth( int n ) { char *a[12]={"January","February","March","April","May","June","July","August","September","October","November","December" }; char *month=NULL; if(n>=1&&n<=12) month=a[n-1]; return month; }
3.错误信息
错误原因:最终没有返回NULL。
改正方法:读题找到了问题。
6-2 1.
(1)第一步:定义一个包含星期的数组。
第二步:运用for循环和if比较s和数组中每一项的大小,如果s小于数组则返回i。
(2)流程图
2.
int getindex( char *s ) { int i=0; char *a[7]={"Sunday","Monday","Tuesday","Wednesday","Thursday","Friday","Saturday"}; for(i=0;i<7;i++) { if(strcmp(s,a[i])==0) { return i; } } return -1; }
3.错误信息1
错误原因:错把for也打成了if,导致程序一直错误。
改正方法:看了几遍下边的错误提示最终发现错误原因并改正。
错误信息2
错误原因:if后错误的带上了;
改正方法:编译一次才发现自己的疏忽。
6-3 1.
(1)第一步:定义变量并初始,运用for循环将a和数组s中的每个数组长度比较,如果小于则代替这个数组,直到选出最大值。
2.
int max_len( char *s[], int n ) { int i,a=0; for(i=0;i<n;i++) { if(a<strlen(s[i])) { a=strlen(s[i]); } } return a; }
3.错误信息
错误原因:编译时if语句最后少放了一个括号
改正方法:自己编译并看提示找出问题改正。
6-4 1.
(1)第一步:定义变量并初始化,运用for和if语句。
第二步:s中数组与ch1如果相等,在运用for循环比较s的另一个数组和ch2的大小,然后输出第一个相等的数到第二个相等的值的数组并返回a。
(2)
#include<string.h> char *match(char *s, char ch1, char ch2 ) { int i=0,j=0,len=0; char *a; len = strlen(s); for(i=0;i<len;i++) { if(s[i]==ch1) { a=&s[i]; for(j=i;j<len;j++) { if(s[j]==ch2) { printf("%c ", s[j]); return a; } else { printf("%c", s[j]); } } printf(" "); return a; } } printf(" "); *s='