1樓:伊·梵
1.階乘要用整型
2.for迴圈中的i要用整型
3.for迴圈中的迴圈結束條件是i<=n;但是你在迴圈中不停的在修改n: 應該另外宣告乙個變數儲存乘積
4.整型計算階乘有限制,double型計算階乘精度不夠無法得到正確的值,大數的階乘需要特別的處理
//下面的程式可以計算足夠大的階乘
#include
void main()
printf("n的階乘是=%lf\n",m);}
2樓:匿名使用者
#include
void main()
printf("n的階乘是=%lf\n",sum);}
3樓:幫個忙好不
#include
void main()
printf("n的階乘是=%d\n",sum);}
4樓:匿名使用者
應該在for迴圈外定義乙個變數如double sum=1;讓後for迴圈裡寫sum=sum*i;sum就是n的階乘
原程式for迴圈中n的值每次因為n=n*i發生變化,你在用i<=n判斷就不對了
c語言問題,求大神解決,謝謝啦,我是小白,最好能夠解釋下。
5樓:
想法還是不錯的,把輸入的乙個字串,倒序存到另外乙個字串中,不過實現時有點問題
首先,兩個字元陣列未初始化,用puts函式當字串輸出時,由於可能沒有字串結束符'\0'而造成輸出亂碼的問題
第二,你接收字串的字元陣列str2是從最後乙個元素開始賦值的,一旦你第乙個字元被賦值為'\0'時,你再用puts(str2),不會有任何輸出,所以你首先應該確定你輸入的字串的長度
#include
void main()
,str2[16]=;//字元陣列可以設大一點,同時初始化為全0 char str1[6],str2[6];
int tmp,i,len=0;//加個len變數來統計你輸入的字串的長度
printf("input str1:");
gets(str1);
i=0;
while(str1[i]!=0)
len=i;
i=0;
while(str1[i]!=0)
puts(str2);}
6樓:
#include
void main()
,str2[6]=,tmp[1]=;//只要加初始化然後下面int i;
printf("input str1:");
gets(str1);
i=0;
while(str1[i]!='\0')
puts(str2);
}功能就是反向輸出乙個輸入的字串,長度為6
c語言問題,求大神改錯,謝謝拉,我是小白。。
7樓:匿名使用者
從題目來看,雞兔同籠表示應該有兩種動物,這是乙個數學上的不定方程問題,如果有i表示雞,那麼兔子的個數就是 (40 - 2i)/4 (這個利用普通的數學知識就應該可以得到了)
下面要確定的就是 (40- 2i)/4 必須是個整數才有意義。
所以只需要判斷 (40 - 2i ) % 4 == 0 是否成立就可以了,成立的時候 i就是雞的個數,(40-2i)/4 就是兔子的個數
完整的程式可以寫成
#include
void main()
}printf("一共有=%d種組合",m);}
8樓:百問誰度
其實都各有各的方法啊!而且你題目有說雞兔數能為0嗎?你的for(i=1;i<=20;i++)是說明了兔可以為0,而雞不可以啊~你可以對for(i=1;i<=20;i++)這裡進行修改,得到你想要的結果
#include
void main()
int i,m=0,n;
float j;
for(i=1;i<20;i++)
{n=(40-2*i);
j=n%4;
if(j==0)
{m++;
printf("雞有=%d只\t兔子有=%d只\n",i,n);
printf("一共有=%d種組合",m);
9樓:fbc大壯
可以用方程解答
我的方法比樓上的簡單
程式如下
#include
void main()
int i,j,m=0, n;
for(i=1;i<=20;i++)
for(n=1;n<=20;n++)
if(n*4==(40-2*i))
m++;
printf("雞有=%d只 兔子有=%i只\n",i,n);
printf("一共有=%d種組合\n",m);
10樓:匿名使用者
二元二次方程都弱爆了。雞兔同籠新演算法:
已知雞和兔15只,一共有40乙隻腳,問雞和兔各有幾隻,演算法:假如雞和兔訓練有素,一吹口哨,他們就抬起乙隻腳(40-15=25)。再吹一聲他們又抬起乙隻腳,(25-15=10),這時雞都坐在地上了,兔子還用兩隻腳站著。
所以兔子有(10/2=5)只,雞有(15-5=10)只。
望採納o(∩_∩)o 哈哈
c語言問題,求大神改錯,謝謝拉,我是新人,小白
11樓:匿名使用者
這是乙個數學問題,首先你要先想好如何求得問題的解,也就是所謂的「演算法」
按照你的思路,
首先利用數學知識可以知道s是關於n的單調遞增函式,所以s與8最接近的值一定是
s(k)<8
void main()
s1 = s - 1.0/n;
if((8-s1) < (s-8))
printf("s=%f,n=%d",s,n);}
12樓:夏碧夢
int n=1;//這裡n應該賦初值1,否則下面的while實際上會成為死迴圈
double s=0,m=0;
while(s<=8)
13樓:匿名使用者
for(n=1;n<=n+1;n++)//這裡是死迴圈
c語言問題,求大神解決,謝謝啦,我是小白,最好能夠解釋下原因
14樓:木子思曰
#include
int main()
else if(*p1<*p2)
p1++;
p2++;
}printf("the 2 string is equal");}
15樓:匿名使用者
p1、p2要先分別指向兩個字元陣列才能開始比較啊,在進入while迴圈前增加:
p1=str1;
p2=str2;
c語言問題,求大神解決,謝謝啦,我是小白,最好能夠解釋下原因
16樓:玻璃麥田
#include
#include
#include
void pailie(int a[ ],int num1,int num2,int count)
}i = (i+1)%number;}}
}void main()
printf("%d, ",b[i]);}}
17樓:
思路沒什麼大錯,主要是判斷語句中的等值判斷應該用「==」,而不是用賦值「=」,如:if(*(q+i)=0)應改為 if(*(q+i)==0),if(n=count)應改為if(n==count)。另外,「if(i=n) i=0;」應該刪掉。
c語言問題,求大神解決,謝謝啦,我是小白,最好能夠解釋下原因..
18樓:匿名使用者
#include
#include
void main()
for(i=0; s1[i]!='\0'; i++) //再將排好序的s1中字元依次放入s中偶數下標處
s[2*i]=s1[i];
puts(s); // 輸出處理後的字串s*/}
c語言問題求大神解答,C語言問題,求大神解答 20
a 用結構體定義以下學生資訊,結構體名 student 學號 姓名和成績 包括3門課程的成績,可用一個陣列表示 struct student c語言問題,求大神解答! 奔安 include include include typedef unsigned int uint typedef struc...
求C語言大神解答這個問題,求C語言大神看看這問題,,,,
束已 這個和float表示的有效位有關係 float 是單精度 只能表示7個有效位,所以你111111.111相當於只能把111111.1賦值給x,y變是如此。如果你用double float x,y 就不會有這種情況了。因為雙精度double float 可以表示9個有效位。double floa...
C語言問題,求解答,C語言問題,求大神解答
f函式中的a每次使用外面傳入的2,b是區域性變數,後每次都是1,c是靜態變數,函式每次執行會在上次值 1 所以最後執行三次,輸出為789 聽不清啊 程式的輸出是 789 c語言問題,求解答 執行abc a 1 首先進行巨集代換過程,是把 a 1去替代 定義的巨集函式 x x 中的x,即得到式子 a ...