這個程式錯在哪了,這個程式錯在哪

時間 2022-06-24 06:40:02

1樓:養豬場廠長夫人

我看出來了 樓主的程式 是想根據 輸入的一個數 輸出它的 個位 十位 百位...... **的錯誤 主要是

a[i]=(b/pow(10,i))%10; 因為你進行了 / 除法運算 得到的數字 不一定是int型 所以程式報錯 你可以進行個強轉 a[i]=((int)(b/pow(10,i)))%10 就可以了

2樓:

pow(10,i)的結果型別為double浮點型別,我猜lz這裡是想用整數,剛好此狀況下應該是整數無疑。

寫成(int)pow(10,i)就可以了,注意括號。

ps:不太明白lz的思路,為什麼最後輸出時要反著順序?

3樓:匿名使用者

錯誤指示翻譯過來是:%左邊不能為double型別的數。

所以你要把%左邊的值變為整數,以下修改僅為參考,可能會影響程式功能。

#include

#include

#define n 10

void main()

for(i=0;i

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

這個程式錯在哪了?

4樓:金色潛鳥

t=fabs(x); 要用浮點數求絕對值,若用 abs(x) 則自動取整了。

if (g==y) 比較符號是 ==, 若用 g=y 則成了賦值,不是比較了。

另,浮點數比較相等時,可能會有截斷誤差,也可用

if ( fabs(g-y) < 1.0e-08 ) ... 考慮精度的比較方式。

scanf("%lf %lf %lf %lf" 注意拼寫,小寫的 l, 不是數字1,常見有人寫成數字1。

5樓:匿名使用者

if(g==y)

「=」這是賦值,「==」這個才是「等於」

這個程式錯在哪

6樓:匿名使用者

我想問下,你**的功能是什麼,

if(str[i]!=c)

new_str[j]='\0'; 這段你想表達的是不是,如果找到了我輸入的**,將其複製陣列new_str[j]的相應位置賦值為'\0'? 假如是這個意思你應該這樣寫

if(str[i]!=c)

else

break; 找到後跳出迴圈 而且的話,你僅僅只是為了找到那個字母,沒必要再重建一個陣列,用標記的方式來解決,效率太低。直接找到不更省事嗎?

if(str[i]==c)

這個程式錯在哪?

7樓:匿名使用者

sum=sum+flag*i/(2*i-1);括號裡面是2*i,不是2i,電腦識別不出2i是什麼

8樓:匿名使用者

1-1/3+1/5-.......(-1)^(i-1) i/(2i-1)=?

語法沒錯啊。

不過你 scanf("%d", &repeat);

for(ri = 1; ri <

有可能程式把前一次的輸入之後的回車當作後一次的輸入的。

最好是輸入之後,用一個printf來提示,或者用一個變數接受一個無效字元。加上判斷是否是有效字元。

9樓:雪

你輸出要求的是浮點型,你的sum定義的也是double型的,可是你計算的結果是整型(int),sum=sum+flag*i/(2i-1.0);我這邊沒有編譯器,能力有限,只能幫到這了!!

10樓:匿名使用者

flag=-flag;

不能這樣寫

應該flag=flag*(-1);

希望幫到你

11樓:匿名使用者

題目是什麼啊………………

這個程式是錯在哪呀?

12樓:

首先是:else if (c=='2) 語句,2的右邊缺少一個單引號,應該是:'2'。

其次是:sqrt( (float)i * (float)j ); 必須要提前進行強制型別轉換才行,否則的話,輸出結果就是錯誤的。

這個程式錯在哪?!

13樓:匿名使用者

merge()函式的返回值型別及返回值有誤,應採用無返回值的函式以指標的方式修改陣列c的元素值(參考網友yiouzhou的程式),如果要採用有返回值的merge()函式,以參考下例。

#include

void main()

,b[10]=;

int *c,i;

sort(a);

sort(b);

c=merge(a,b);

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

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

}void sort(int *a)

}int *merge(int *a,int *b)if(i==10)

c[t++]=b[j++];

else

c[t++]=a[i++];

return c;}

14樓:匿名使用者

最後一句

return c[20];

因為前文宣告瞭int c[20]

所以對於陣列c,

能訪問的第一個陣列成員為c[0]

能訪問的最後一個陣列成員為c[19]

而訪問c[20]會越界

會造成陣列越界

15樓:匿名使用者

你的函式int merge(int *a,int *b)有問題,你返回的只有c[20]; 一個值,而且還是越界的

應該用指標來返回陣列

#include

void main()

,b[10]=;

int c[20],i;

sort(a);

sort(b);

merge(a,b,c);

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

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

}int sort(int *a)

}int merge(int *a,int *b,int *c)if(i==10)

c[t++]=b[j++];

else

c[t++]=a[i++];

return 1;}

麻煩幫我看看這個程式錯在哪

問題在於你 s char malloc i sizeof char 這一步分配記憶體不足,i是從0開始的下標,作為數量使用時要用i 1。或者你這裡直接用上面的n,把這一行改成 s char malloc n sizeof char 即可。for i 10 p int malloc n sizeof ...

請問這C語言程式錯在哪,請問我這C語言程式錯在哪

冬一又二分之一 首先 int a 要加分號 else下面有多條語句,應該加上 include int main int a printf input a scanf d a if a 0 a 100 printf error n else switch a 10 case 10 case 9 pri...

請各位幫我看看這個遍歷排序二叉樹程式錯哪兒了?只能遍歷坐邊的樹,到右邊就彈出了

看這個吧,跟你的設計一摸一樣,有註釋,你的沒有註釋,有些不怎麼好理解。include stdio.h include stdlib.h struct tree 宣告樹的結構 typedef struct tree treenode 宣告新型別樹結構 typedef treenode b tree 宣...