求C语言改错题

求C语言改错题,第1张

1,给定程序MODI1.C中函数fun的功能是:根据整型形参m,计算如下公式的值。

1

1

1

1

y

=

-------

+

---------

+

---------

+

……

+

-------

100*100

200*200

300*300

m*m

例如,若m

=

2000,则应输出:

0.000160。

请改正程序中的语法错误,使它能计算出正确的结果

注意:不要改动

main

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

#include

<stdio.h>

/************found************/

fun

(

int

m

)/*改为double

fun

(int

m)*/

{

double

y

=

0,

d

int

i

/************found************/

for(

i

=

100,

i

<=

m,

i

+=

100

)/*改为for(

i

=

100;i

<=

m,;i

+=

100

)*/

{

d

=

(double)i

*

(double)i

y

+=

1.0

/

d

}

return(

y

)

}

main(

)

{

int

n

=

2000

printf(

"\nThe

result

is

%lf\n",

fun

(

n

)

)

}

2,给定程序MODI1.C中

fun

函数的功能是:分别统计字符串中大写字母和小写字母的个数。

例如,

给字符串

s

输入:AAaaBBb123CCccccd,则应输出结果:upper

=

6,

lower

=

8。

请改正程序中的错误,使它能计算出正确的结果。

注意:不要改动

main

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

#include

<stdio.h>

/**********found**********/

void

fun

(

char

*s,

int

a,

int

b

)/*改为void

fun

(

char

*s,

int

*a,

int

*b

*/)

{

while

(

*s

)

{

if

(

*s

>=

'A'

&&

*s

<=

'Z'

)

/**********found**********/

*a=a+1

/*改为*a=*a+1

*/

if

(

*s

>=

'a'

&&

*s

<=

'z'

)

/**********found**********/

*b=b+1/*改为

*b=*b+1*/

s++

}

}

main(

)

{

char

s[100]

int

upper

=

0,

lower

=

0

printf(

"\nPlease

a

string

:

"

)

gets

(

s

)

fun

(

s,

&

upper,

&lower

)

printf(

"\n

upper

=

%d

lower

=

%d\n",

upper,

lower

)

}

3,给定程序MODI1.C中函数fun的功能是:根据整型形参m的值,计算如下公式的值。

1

1

1

t

=

1

-

-----

-

-----

-

……

-

-----

2*2

3*3

m*m

例如,若

m

中的值为:

5,则应输出:

0.536389。

请改正程序中的错误,使它能得出正确的结果。

注意:不要改动main函数,不得增行或删行,也不得更改程序的结构!

#include

<stdio.h>

double

fun

(

int

m

)

{

double

y

=

1.0

int

i

/**************found**************/

for(i

=

2

i

<

m

i++)/*for(i

=

2

i

<=

m

i++)

*/

/**************found**************/

y

-=

1

/(i

*

i)

/*

y

-=

1.0

/(i

*

i)

*/

return(

y

)

}

main(

)

{

int

n

=

5

printf(

"\nThe

result

is

%lf\n",

fun

(

n

)

)

}

4,给定程序MODI1.C中函数fun的功能是:从s所指字符串中删除所有小写字母c。

请改正程序中的错误,使它能计算出正确的结果。

注意:不要改动

main

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

#include

<stdio.h>

void

fun(

char

*s

)

{

int

i,j

for(i=j=0

s[i]!='\0'

i++)

if(s[i]!='c')

/************found************/

s[j]=s[i]/*

s[j++]=s[i]*/

/************found************/

s[i]='\0'/*

s[j]='\0'*/

}

main()

{

char

s[80]

printf("Enter

a

string:

")

gets(s)

printf("The

original

string:

")

puts(s)

fun(s)

printf("The

string

after

deleted

:

")

puts(s)printf("\n\n")

}

可以了吧

假如整数n除以m,结果是无余数的整数,那么我们称m就是n的因子。 需要注意的是,唯有被除数,除数,商皆为整数,余数为零时,此关系才成立。反过来说,我们称n为m的倍数 。

如果利用C语言求一个整数n的因子,可以从1开始到n,依次加1,如果它是n的的因子,则输出。

具体的源码实现如下:

#include <stdio.h>

#include <stdlib.h>

int main(int argc, char* argv[])

{

    int n

    while(scanf("%d",&n) !=EOF)

    {

        if(n<1)break

        int i

        for(i=1i<=ni++)

        {

            if(n%i==0)

            printf("%d ",i)

        }

        printf("\n")

    }

    return 0

}

编译运行后的结果:

#include<stdio.h>

int main( )

{

int i ,sum=0 // sum要赋初值

float average

int score[10],p=score // 这里将指针赋值给整型, 应改为 *p = score

for(i=0i<10i++)

{

scanf("%d",p)

sum+=*p

p++// 这句应该放在这里,要加完之后再改变 p的值

}

average=sum/10 // 这里计算结果为整型,应该为 sum/10.0

printf("average=%f\n",average)

return 0

}


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/yw/12043190.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-20
下一篇 2023-05-20

发表评论

登录后才能评论

评论列表(0条)

保存