程序改错.docx

上传人:b****3 文档编号:2445165 上传时间:2022-10-29 格式:DOCX 页数:35 大小:20.61KB
下载 相关 举报
程序改错.docx_第1页
第1页 / 共35页
程序改错.docx_第2页
第2页 / 共35页
程序改错.docx_第3页
第3页 / 共35页
程序改错.docx_第4页
第4页 / 共35页
程序改错.docx_第5页
第5页 / 共35页
点击查看更多>>
下载资源
资源描述

程序改错.docx

《程序改错.docx》由会员分享,可在线阅读,更多相关《程序改错.docx(35页珍藏版)》请在冰豆网上搜索。

程序改错.docx

程序改错

五、程序改错

1./*--------------------------------------------------------

【程序改错】

--------------------------------------------------------

功能:

依次取出字符串中所有数字字符,形成新的字符串,并取代原字符串。

例如:

输入ab12c3d,则输出123。

注意:

不得增行或删行,也不得更改程序的结构!

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

#include"stdio.h"

/**********ERROR**********/

voidfun(chars)

{

inti,j;

for(i=0,j=0;s[i]!

='\0';i++)

if(s[i]>='0'&&s[i]<='9')

/**********ERROR**********/

s[j]=s[i];

/**********ERROR**********/

s[j]="\0";

}

main()

{

charitem[80];

printf("\nEnterastring:

");

gets(item);

printf("\n\nThestringis:

\"%s\"\n",item);

fun(item);

printf("\n\nThestringofchangingis:

\"%s\"\n",item);

}

 

【改错1】

【学生答案】

voidfun(chars)

【参考答案】

voidfun(char*s)

voidfun(chars[])

voidfun(chars[80])

 

============================================================

【改错2】

【学生答案】

s[j]=s[i];

【参考答案】

s[j++]=s[i];

{s[j]=s[i];j++;}

 

============================================================

【改错3】

【学生答案】

s[j]="\0";

【参考答案】

s[j]='\0';

 

============================================================

 

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

【程序改错】

--------------------------------------------------------

功能:

读入一个整数m(5≤m≤20),函数rnd获得m个随机整数,

函数sortpb将这m个随机整数从小到大排序。

例如:

若输入整数7,则应输出:

3101728323647。

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

#include"conio.h"

#include"stdio.h"

voidsortpb(intn,inta[])

{

/**********ERROR**********/

inti,j,p;

for(j=0;j

{

p=j;

for(i=j+1;i

/**********ERROR**********/

if(a[p]>a[j])p=i;

/**********ERROR**********/

if(p==j)

{

t=a[j];

a[j]=a[p];

a[p]=t;

}

}

}

voiddoublernd()

{

statict=29,c=217,m=1024,r=0;

r=(r*t+c)%m;return((double)r/m);

}

voidgetarr(intn,int*x)

{

inti;

for(i=1;i<=n;i++,x++)*x=(int)(50*rnd());

}

voidputarr(intn,int*z)

{

inti;

for(i=1;i<=n;i++,z++)

{

printf("%4d",*z);

if(!

(i%10))printf("\n");

}

printf("\n");

}

main()

{

intaa[20],n;

printf("\nPleaseenteranintegernumberbetween5and20:

");

scanf("%d",&n);

getarr(n,aa);

printf("\n\nBeforesorting%dnumbers:

\n",n);putarr(n,aa);

sortpb(n,aa);

printf("\nAftersorting%dnumbers:

\n",n);putarr(n,aa);

}

【改错1】

【学生答案】

inti,j,p;

【参考答案】

inti,j,p,t;

 

============================================================

【改错2】

【学生答案】

if(a[p]>a[j])p=i;

【参考答案】

if(a[p]>a[i])p=i;

if(a[i]

 

============================================================

【改错3】

【学生答案】

if(p==j)

【参考答案】

if(p!

=j)

一、程序改错

1./*------------------------------------------------------

【程序改错】

--------------------------------------------------------

功能:

一个5位数,判断它是不是回文数。

即12321是回文数,个

位与万位相同,十位与千位相同。

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

#include"stdio.h"

main()

{

/**********ERROR**********/

longge,shi,qian;wan,x;

scanf("%ld",&x);

/**********ERROR**********/

wan=x%10000;

qian=x%10000/1000;

shi=x%100/10;

ge=x%10;

/**********ERROR**********/

if(ge==wan||shi==qian)

printf("thisnumberisahuiwen\n");

else

printf("thisnumberisnotahuiwen\n");

}

【改错1】

【学生答案】

longge,shi,qian;wan,x;

【参考答案】

longge,shi,qian,wan,x;

 

============================================================

【改错2】

【学生答案】

wan=x%10000;

【参考答案】

wan=x/10000;

 

============================================================

【改错3】

【学生答案】

if(ge==wan||shi==qian)

【参考答案】

if(ge==wan&&shi==qian)

if(shi==qian&&ge==wan)

 

============================================================

2.

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

【程序改错】

--------------------------------------------------------

功能:

用下面的和式求圆周率的近似值。

直到最后一项的绝对值

小于等于0.0001。

   

   π/4=1-1/3+1/5-1/7....

 

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

#include"stdio.h"

/**********ERROR**********/

#include"math"

voidfun()

{

floats=0,t=1,i=1;

/**********ERROR**********/

intp=1;

/**********ERROR**********/

while(fabs(t)<=1e-4)

{

s=s+t;

p=-p;

i=i+2;

t=p/i;

}

/**********ERROR**********/

printf("pi=%d\n",s*4);

}

main()

{

fun();

}

【改错1】

【学生答案】

#include"math"

【参考答案】

#include"math.h"

#include

 

============================================================

【改错2】

【学生答案】

intp=1;

【参考答案】

floatp=1;

floatp=1.0;

doublep=1;

double1.0;

 

============================================================

【改错3】

【学生答案】

while(fabs(t)<=1e-4)

【参考答案】

while(fabs(t)>1e-4)

while(0.0001

while(1e-4

while(fabs(t)>0.0001)

 

============================================================

【改错4】

【学生答案】

printf("pi=%d\n",s*4);

【参考答案】

printf("pi=%f\n",s*4);

printf("pi=%lf\n",s*4);

 

===============

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 经管营销 > 经济市场

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1