程序改错完整版---C语言

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

(一)功能:用选择法对数组中的n个元素按从小到大的顺序进行排序。#include "stdio.h"

#define N 20

void fun(int a[], int n)

{

int i, j, t, k;

for (j = 0 ;j < n-1 ;j++)

{

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

k = j

for (i = j+1;i < n; i++)

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

if(a[i] >a[k])

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

k=j;

t = a[k] ;

a[k] = a[j] ;

a[j] = t;

}

}

main()

{

int a[N]={9,6,8,3,-1},i, m = 5;

printf("排序前的数据:") ;

for(i = 0;i < m;i++)

printf("%d ",a[i]);

printf("\n");

fun(a,m);

printf("排序后的数据:") ;

for(i = 0;i < m;i++)

printf("%d ",a[i]);

printf("\n");

}

【参考答案】

k = j;

【参考答案】

if(a[i] < a[k])

if(a[k] > a[i])

【参考答案】

k = i;

(二)功能:求广义菲玻那契级数的第n项。广义菲玻那契级数的前n 项为: 1,1,1,3,5,9,17,31,……

项值通过函数值返回 main ( )函数。

例如:若 n = 15,则应输出:The value is: 2209。

#include "conio.h"

#include "stdio.h"

long fun ( int n )

{

long a=1, b=1, c=1, d=1, k;

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

for (k=4; k

{

d = a+b+c;

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

a=b

b=c;

c=d;

}

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

return k;

}

main( )

{

int n = 15;

printf( "The value is: %ld\n", fun ( n ) );

}

【参考答案】

for (k=4; k<=n; k++)

【参考答案】

a=b;

【参考答案】

return d;

(三)功能:利用递归函数调用方式,将所输入的5个字符,以相反顺序打印出来。

#include"stdio.h"

main()

{

int i=5;

void palin(int n);

printf("\40:");

palin(i);

printf("\n");

}

void palin(n)

int n;

{

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

char next

if(n<=1)

{

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

next!=getchar();

printf("\n\0:");

putchar(next);

}

else

{

next=getchar();

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

palin(n);

putchar(next);

}

}

【参考答案】

char next;

【参考答案】

next=getchar();

【参考答案】

palin(n-1);

(四)

功能:计算级数 ex=1+x+x2/2!+x3/3!+ ...+xn/n! 的值。其中xn代表x的n次方。include "stdio.h"

main()

{

int m,n;

float x,term,ex1,ex2;

printf("x,m=");

scanf("%f %d",&x,&m);

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

ex1==ex2=1;

term=1;

for(n=1;n<=m;n++)

{

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

term*=x%n;

ex1+=term;

}

ex2=term;

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

for (n=m;n>1; n--)

{

term*=n/x;

ex2+=term;

}

printf("exforward=%f exbackrard=%f\n",ex1,ex2);

}

【参考答案】

ex1=ex2=1;

【参考答案】

term*=x/n;

【参考答案】

for (n=m;n>=1; n--)

(五)功能:用"冒泡法"对连续输入的十个字符排序后按从小到大的次序输出.

define N 10

#include "stdio.h"

#include "string.h"

void sort(char str[N]);

main( )

{

int i;

char str[N];

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

for(i=0;i

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

sort(str[N]);

for(i=0;i

printf("%c",str[i]);

printf("\n");

}

相关文档
最新文档