读书人

程序改错题解决方案

发布时间: 2013-11-12 12:10:37 作者: rapoo

程序改错题
/*------------------------------------------------------
【程序改错】
--------------------------------------------------------

功能:求出在字符串中最后一次出现的子字符串的地址,通过函
数值返回,在主函数中输出从此地址开始的字符串;若未
找到,则函数值为NULL。
例如:当字符串中的内容为:"abcdabfabcdx",t中的内容为:
"ab"时,输出结果应是:abcdx。当字符串中的内容为:
"abcdabfabcdx",t中的内容为:"abd"时,则程序输出
未找到信息:not found!。

------------------------------------------------------*/

#include <conio.h>
#include <stdio.h>
#include <string.h>

char * fun (char *s, char *t )
{
char *p , *r, *a;
/**********FOUND**********/
a == NULL;
while ( *s )
{
p = s;
r = t;
while ( *r )
/**********FOUND**********/
if ( r == p )
{
r++;
p++;
}
else
break;
/**********FOUND**********/
if ( *r ='\0' ) a = s;
s++;
}
return a ;
}

main()
{
char s[100], t[100], *p;
printf("\nPlease enter string S :"); scanf("%s", s );
printf("\nPlease enter substring t :"); scanf("%s", t );
p = fun( s, t );
if ( p )
printf("\nThe result is : %s\n", p);
else
printf("\nNot found !\n" );
}








【程序改错】
--------------------------------------------------------

功能:编写一个程序计算某年某月有几天。(注意要区分闰年)

------------------------------------------------------*/

#include<stdio.h>

void main()
{
int yy,mm,len;
printf("year,month=");
scanf("%d%d",&yy,&mm);
/**********FOUND**********/
switch(yy)
{
case 1:
case 3:
case 5:
case 7:
case 8:
case 10:
case 12:
len=31;
/**********FOUND**********/
break
case 4:
case 6:
case 9:
case 11:
len=30;
break;
case 2:
if (yy%4==0 && yy%100!=0 || yy%400==0)
len=29;
else
len=28;
break;
/**********FOUND**********/
default
printf("input error!\n");
break;
}
printf("The length of %d %d id %d\n",yy,mm,len);
}




请大家帮忙看一下,程序题哪里错了? c 编程
[解决办法]
第一题 a==NULL 改成 a=NULL , if ( r == p ) 改成if(*r==*p) ,if ( *r ='\0' ) a = s;改成if ( *r =='\0' ) a = s;

第二题 case 12:
len=31;
/**********FOUND**********/
break //这里加分号;


switch(yy)改成 switch(mm)
default //加冒号:
printf("input error!\n");
break;

读书人网 >C语言

热点推荐