(1)算法:
第一步:定义整型变量n,字符指针s,输入一个数赋给n。
第二步:调用函数getmonth将值赋给s。
第三步:在函数getmonth中使用switch—case语句来实现,返回月份的英文名。
第四步:在主函数中如果s==NULL就输出wrong input,否则输出s。
(2)流程图:
char *getmonth( int n ){
char *a;
switch(n){
case 1:strcpy(a,"January");break;
case 2:strcpy(a,"February");break;
case 3:strcpy(a,"March");break;
case 4:strcpy(a,"April");break;
case 5:strcpy(a,"May");break;
case 6:strcpy(a,"June");break;
case 7:strcpy(a,"July");break;
case 8:strcpy(a,"August");break;
case 9:strcpy(a,"September");break;
case 10:strcpy(a,"October");break;
case 11:strcpy(a,"November");break;
case 12:strcpy(a,"December");break;
default:strcpy(a,"NULL");
}
return(a);
}
修改后的代码
char *getmonth( int n ){
switch(n){
case 1:return "January";
case 2:return "February";
case 3:return "March";
case 4:return "April";
case 5:return "May";
case 6:return "June";
case 7:return "July";
case 8:return "August";
case 9:return "Septemer";
case 10:return "October";
case 11:return "November";
case 12:return "December";
default:return NULL;
}
}
问题1:部分正确
错误的原因:没有声明string函数库,无法调用strcpy函数。
修正方法:自己想不出来在网上搜解题思路,自己重新写。
(1)算法:
第一步:定义整型变量i,字符数组s[MAXS],输入一个字符串赋给s。
第二步:调用函数getindex,n=getindex的返回值。
第三步:在getindex函数中,定义整型变量a=-1,i=0,字符指针数组*week[7]={"Sunday","Monday","Tuesday","Wednesday","Thursday","Friday","Saturday"},在for循环中i为循环变量,条件为i<7,如果strcmp(s,week[i])==0,就执行a=i,然后跳出这个循环,执行完for循环最后返回a。
第四步:在主函数中如果n==-1,就执行wrong input!,否则就输出n的值
(2)流程图:
int getindex( char *s ){
int a=-1,i;
char *week[7]={"Sunday","Monday","Tuesday","Wednesday","Thursday","Friday","Saturday"};
for(i=0;i<7;i++){
if(strcmp(s,week[i])==0){
a=i;
break;
}
}
return a;
}
(1)算法:
第一步:常量MAXN 10,MAXS 20,定义整型变量i,n,字符指针数组string[MAXN] = {NULL},输入一个数赋给n。
第二步:借助for循环i=0;条件为i<n;在for循环中动态分配内存大小为20字节,输入一个字符串赋给string[i]。
第三步:调用max_len函数,将函数max_len的返回值输出。
第四步:在函数max_len中,定义整型变量i,count=0,j,整型数组q[20]={0};借助for循环求出(*(s+i))中的字符串的长度,将值赋给q[i];
第五步:count=q[0],借助for循环找到q[i]的最大值赋给count,最后返回count的值。
(2)流程图
int max_len( char *s[], int n ){
int i,count=0,j,q[20]={0};
for(i=0;i<n;i++){
for(j=0;*(*(s+i)+j)!=‘\0‘;j++){
}
q[i]=j;
}
count=q[0];
for(i=0;i<n;i++){
if(q[i]>count){
count=q[i];
}
}
return count;
}
原文:https://www.cnblogs.com/chenxidream/p/8778302.html