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