c語言改錯題if
㈠ c語言改錯題
#include"stdio.h"
fact(intn)
{
if(n==1)return1;
elsereturnn*fact(n-1);
}
calcSum(intn)
{
inti,sum=0;
for(i=1;i<=n;i++)
{
sum+=fact(i);
}
returnsum;
}
voidmain()
{
intn,sum=0;
printf("Pleaseinputn:");
scanf("%d",&n);
sum=calcSum(n);
printf("sumis:%d ",sum);
}
㈡ c語言中if語句常見的錯誤有哪些
c語言中if語句常見的錯誤有:
1、if語句的錯誤使用
if(3>2);
printf("hello");
else
printf("hi");
2、if語句的錯誤使用
if(3>2)
printf("one");
elseif(3>1)
printf("tow");
else(3>0)
printf("three");
(2)c語言改錯題if擴展閱讀
正確使用if語句
if語句是指如果滿足某種條件,就進行相應的處理。例如,小明媽媽跟小明說「如果你考試得了100分,星期天就帶你去游樂場玩」。這句話可以通過下面的一段偽代碼來描述。
如果小明考試得了100分
媽媽星期天帶小明去游樂場
在上面的偽代碼中,「如果」相當於C語言中的關鍵字if,「小明考試得了100分」是判斷條件,需要用()括起來,「媽媽星期天帶小明去游樂場」是執行語句,需要放在{}中。修改後的偽代碼如下:
if(小明考試得了100分)
{
媽媽星期天帶小明去游樂場
}
上面的例子就描述了if語句的用法,在C語言中,if語句的具體語法格式如下:
if(條件語句)
{
代碼塊
}
㈢ 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
㈣ c語言if語句題目,錯在哪裡了怎麼改
if(x=0)寫錯了,應該是if(x==0)
㈤ c語言改錯題
#include<stdio.h>
#include<string.h>
voidpanan(char*id)//1
{inti;
for(i=6;i<=9;i++)
printf("%c",id[i]);
printf("year,");
if(id[16]%2==0)//2
printf("sex:Female ");
else
printf("sex:Male ");
}
voidmain()
{charid[19];
intnum;
printf("pleaseinputIDCARD: ");
scanf("%s",id);//3
num=strlen(id);
if(num==18)
panan(id);//4
else
printf("錯誤 ");
getchar();
}
㈥ 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語言改錯題
改錯,並經實際運行,結果如下圖:
#include<conio.h>
#include<stdio.h>
//intfound(inta[10][30],intn)//錯誤,彈出錯誤[Error]
intfound(inta[10][30],intn)//改錯
{
inti,j,s,k,x;
//for(i=0,k=1;k<=n;k++)//修改
i=0;//此處修改,但不算錯誤
for(k=1;k<=n;k++)
{
//s=1;//錯誤
s=0;//改錯,累加器,初始值為0
x=k;
for(;x<n;x++)
{
s+=x;
if(s>=n)break;
}
if(s==n)
{
//for(j=0;k+j<=x;j++)//錯誤,丟失最後1個元素
for(j=0;k+j<=x;j++)//改錯
a[i][j]=k+j;
i++;
}
}
returni;
}
intmain()
{
inta[10][30]={0};
inti,j,n,m;
printf("n=");
//scanf("%d",&n);錯誤
scanf("%d",&n);//改錯:n-->&n
m=found(a,n);
if(m>0)
{
printf("%dserials
",m);
for(i=0;i<m;i++)
{
for(j=0;a[i][j]!=0;j++)
printf("%4d",a[i][j]);
printf("
");
}
}
else
printf("notfound
");
getch();
return0;
}
㈧ 這是C語言程序改錯題,程序中if(e=n*9)為什麼要改成if(e==n*9)
這是因為(e=n*9)是一個賦值表達式,而不是一個邏輯表達式,要完成判斷e是否等於9倍的n,就必須要使用邏輯表達式的。所以要改成if(e==n*9)