c语言程序改错
⑴ C语言编程改错
#include<stdio.h>
#include<math.h>
#include"math.h"
floatfun(intn)
{
inti=0,sum=0;
floats=2.0f;
for(i=1;i<=n;i++)
{
sum=sum+i;
if(sum==1)continue;
printf("(1+..%d)+1=%d
",i,sum+1);
s=s/(sum+1);
printf("%0.16f
",s);
}
returns;
}
intmain()
{
fun(10);
return0;
}
⑵ C语言代码改错题
#include <stdio.h>
int main(void)
{
int flag, n;
double eps, item, s;
printf("Input eps:");
scanf("%lf", &eps);
flag = 1;
s = 0;
n = 1;
do
{
item = 1.0 / n;
s = s + flag * item;
flag = -flag;
n = n + 3;
} while (item >= eps);
printf("s=%f ", s);
return 0;
}
⑶ C语言程序改错题
答:改错如下所示,在程序错误部分有提示。
#include <stdio.h>
int main (void){
int a,b,c,max;//第一处错误,max定义未使用,t未定义却使用了。有两种解决办法,将下面t出现的地方用max代替,或者重新定义t,取消对max的定义。
printf (""请输入3个整数: ");
scanf ("%d%d%d" , &a ,&b,&c);
if (a<b);//第二处错误,if语句后有对应的操作,不能出现分号,否则会变成空语句,对应的操作也不会执行。此处删除分号,即可。
{t=a; a=b; b=t; }//第三处错误,t未定义,建议替换成max
。
if (a<c)
{t
=a; c=a
; c=t; }//第四处错误,t未定义,还有第二个语句应改为a=c
。
if(b>c)//第五处错误,按降序排序,判断条件应改成b<c
。
{ t
=b; b=c; c=t
;}//第六处错误,t未定义,建议用max替换。
printf("由大到小顺序为:%d %d %d " ,a,b,c);
return 0;
}
⑷ C语言程序改错题,为什么if(a小于b),max=a,要把a的值赋给max
max=a;
a=b;
b=max;
这是一个交换两变量的过程,作用是交换两个变量的值
首先把a的值赋给max
然后把b的值赋给a
最后把max赋给b,由于max的值是原来a的值,所以b相当于得到了a的值
交换过程结束
所以:
if (a < b) { .... }表示,如果a小于b,则交换a与b
if (a < c) { .... }表示,如果a小于c,则交换a与c