用C語言程式設計100元換1元2元5元多少種換法每種錢數大於0有多少種換法

2021-03-28 04:15:13 字數 6482 閱讀 1084

1樓:

#include

void main()}}

printf("有%d種換法\n",count);

}//不懂的追問

2樓:匿名使用者

#include

int main()}}

}printf("共有%d種換法",count);

//getchar();}

3樓:匿名使用者

#include

int main()

printf("**t=%d\n",**t );

return 0;}

4樓:

void main()}

c語言程式設計,要將100元錢換成1元,2元,5元的零錢.每種錢數大於0,而且為5的倍數,程式設計計算有多少種換法?

5樓:it孤鶩

#include

void main()

6樓:匿名使用者

#include

using namespace std;

int main()

}cout<

}所有的組合情況

7樓:匿名使用者

#include

int main(int argc, char *argv)}}}return 0;}

c語言,把100元換成5元,1元,0.5元的演算法,輸出所有換法

8樓:匿名使用者

我暈哦,bai你說列印出來的結果從du5開始計數...啊zhi這是因為資料太多了,dao前面專從0開始的被沖掉了,汗!!!

因為屬5元的還是只能從5開始計數...

你自己的理解問題,你執行一次看看結果就知道了。

你說說**不對,我都執行ok。

把這兩句去掉就行了:

if(total>100)

break;

c語言程式設計:某人想將手中一張面值100元的人民幣換成5元、1元和0.5元面值的票子,但要求100元

9樓:匿名使用者

#include

main()

}printf("c=%d\n",c);}

c語言程式題:把100元換成一元,5角,5分,1分的有幾種換法?

10樓:雨中笨豬

1*a+0.5*b+0.05*c+0.01*d=100#include

using std::cout;

using std::endl;

int _tmain(int argc, _tchar* argv)}cout<<"一共有"<

return 0;}

11樓:匿名使用者

#include

int main()

printf("%d",count);}

12樓:匿名使用者

for迴圈巢狀,

一元a個,5角b個,5分c個,1分d個

int a,b,c,d=0;

for (a=0;a<=100;a++)

內for (b=0;b<=200;b++)for (c=0;c<=2000;c++)

c語言問題:要將100元錢換成1元,2元,5元的零錢,程式設計求出有幾種換法?這麼程式設計為什麼不行?求高手指教!

13樓:乙個青年

程式原始碼如下:迴圈巢狀迴圈次數少的盡量在外!

#include

#include

using namespace std;

int main()}}

cout << "換法有" << count << "種\n";//輸出換法種數

system("pause");

return 0;

}程式執行結果如下:

擴充套件資料:其他實現方法:

#include

int main()

printf("there are %d ways.\n",i);

return 0;}

14樓:匿名使用者

#include

int main()

printf("there are %d ways.\n",i);

return 0;

}這樣就可以了

巢狀迴圈有個潛規則:將迴圈次數少的迴圈作為外迴圈。

15樓:匿名使用者

你沒有在一層迴圈完二層巢狀回歸引數y=0; 同樣最高層也是

16樓:匿名使用者

x,y,z可以是0啊

c語言程式設計問題 分解乙個數 使得運算元最少。

17樓:匿名使用者

#include

int main()

;int b[7] = ;

int n,i;

scanf("%d",&n);

for(i = 0; i < 7; i ++)return 0;}

c語言程式設計問題!

18樓:薰衣草的旋律

1.程式設計在乙個已知字串中查詢最長單詞,假定字串中只含有字母和空格,空格用來分割不同單詞!

方法一:

//vc++ 6.0 編譯通過

#include

void main()

if(max

#include

void main()

; int i=0,j=0,max=0;

while(*p)

i++;j=0;

} i=0;

max=strlen(array[i]);

p=array[i];

while(strlen(array[i]))

for(--i;i>=0;i--)

putchar('\n');

} //關於二進位制的轉換,還可以用位移運算子。通過和某乙個數如1相按位與,就得到它的二進

制最低位,在位移,再得到二進位制最低位,依此類推。

轉換為8進製:

/vc++ 6.0編譯通過。

#include

#include

void main()

for(--i;i>=0;i--)

putchar('\n');

} /*

轉換為8進製就沒有16進製制那麼麻煩了,它不需要另外定義乙個字元陣列用來存放,進製的

所有基數了,而是直接輸出來就可以了。而對與16進製制還要存放他的基數。從0到f

*/ 轉換為16進製制:

//vc++ 6.0 下編譯通過

#include

#include

void main()

; scanf("%d",&a);

for(i=0;a!=0;i++)

for(--i;i>=0;i--) //開始有乙個 --i

printf("\n");

} /*

一般把其它進製的數轉換為十進位制的數較容易,有乙個現成的乘法公式供我們使用。

但把十進位制的數轉換為其它進製的數,則要用到除法。這題的思路是比較清晰的,應該是

解決這類問題的典型演算法了。

而對於把十進位制的數轉換為二進位制的數來說,除了用到除法外,還可用位運算。

這個問題主要是這兩句話值得理解:

b[i]=a%base;

a=a/base;

我們一般是用這兩句迴圈使用來得到乙個整數的各位的數字,這也恰巧說明了,我們得到

乙個整數的各個位數所用到的方法,正是把乙個十進位制的數轉換為乙個 "十進位制" 數的演算法

也就是我們得到乙個十進位製數的各個位的數字的過程,實際上就是求把他轉換為乙個十進位制

的數字的過程(雖然這裡本身沒必要在轉換,因為本身它就已經是乙個十進位製數了)。用同樣

的道理可以推算把十進位製數轉換為其他進製數的過程,和這個是類似的。

然後將後得到的結果先輸出,而先取餘數得到的結果則在數字的最後面,在低位。

*/ 通用解決方案:

#include

#include

void main()

; for(int i=9;i>=0;i--)

else

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

} }/* 其實進製轉換的演算法我們都知道,就是用我們要轉換的那個數,對進製的基數(如果是16進製制)

進行取餘,把取餘的結果儲存在乙個陣列裡面,再對他取整重新賦值,也就是丟掉餘數部分,

相當於取上一步的商,再取餘,再取整。如此迴圈,直到為0。

其實上面的演算法,只要我們想起把乙個十進位制的數轉換為二進位制的數的計算方法,就不難理解,

因為都是相通的。

現在關鍵是,如果我的這些事情都做好了,也就是餘數都放在乙個陣列裡了,現在要做的就是

把陣列逆序輸出就ok了。那麼如果是二進位制或八進位制,我們只要直接輸出就可以了,但是如果是

乙個十六進位制的話,就不能這樣了,也就是如果陣列裡面有乙個元素是14,那麼我就不能原樣輸出

了,此時必須輸出e,因為e就是十六進位制裡面的基數,而且也是與十進位制的14相對應的。但是如果

是乙個二進位制或者是乙個八進位制的話,就可以直接輸出,因為陣列裡面的數都是0,1(對二進位制)

或者(0....8),這些數就是二進位制和八進位制的基數。

所以這裡要面臨的問題就是,在輸出乙個整數的時候,如果這個整數滿足某一條件,就輸出什麼字

符的問題,例如:如果這個整數等於14則輸出'e'字元。

當然我們可以用 if..else 語句來判斷,對於十六進位制的數特殊的字元也就只有a,b,c,d,e,f六個

用 if...else 來判斷也不算太煩瑣。當然我們還可以用 switch 來判斷,這樣更加有條理。**

也更清晰。

當然這是對於16進製制的數來說的,我們可以這樣判斷,但是如果實際生活中遇到的問題和這個有點

類似,而且字母有多的話,用條件判斷或switch就太煩瑣了,**也不直觀,還容易出錯。

那麼這時我們可以在定義乙個字元陣列,分別放我們要輸出的字元,如果有以下對應的關係:

10 a

11 b

12 c

13 d

14 e

15 f

16 g

17 h

18 i

19 j

也就是說在陣列a裡面放的是數字,在陣列b裡面放的是字元,要求陣列a裡面的數字是10的時候,輸

出'a',而不是輸出10,依次類推(看上面的對應關係),當然我上面的對應關係都是順序的,其實也

可以不是順序的,對於數字和字元都可以是亂的,當然這要看實際遇到的問題是什麼樣的了。如果

對上面的問題還用if...else來判斷的話,那未免太煩瑣。所以我們定義乙個字元陣列來專門存放

字元。那麼怎麼讓數字和字元聯絡起來呢,怎麼讓a[i]的值是10的時候就輸出'a'而是14的時候就輸

出'e'呢,在這裡我們可以這樣定義b陣列:

char b[30]=;

b[10]='a';

b[11]='b';

b[12]='c';

b[13]='d';

b[14]='e';

...b[19]='j';

這樣也就是說當a[i]元素的值是10時,就輸出b[10],是11就輸出b[11];這樣就和數字對應起來

了。我們可以這樣用:

int t=a[i];

printf("%c",b[t]); a[i]的值是多少,我們就輸出b[多少]

但對於上面舉的例子來說,可以這樣:

if(a[i]>=10&&a[i]<=19) //對應關係是連續的,才可以這樣判斷

else

當然了,上面的是對應的連續的情況,對與10進製與二進位制,8進製,16進製制之間的轉換,都是連續的情況。

如果對應的是不連續的情況,那有該怎麼辦呢:

20 'a'

25 'b'

30 'd'

50 'g'

53 'h'

58 'c'

100 'z'

200 'w'

對於上面的情況,是一點規律性也沒有的,而且如果為了這幾個數就去定義乙個200個元素的陣列,實在是

有點划不來。所以如果是上面這種情況,就沒有比較好的辦法了。只用用判斷語句了,當然如果有20多個

字元的對應關係的話,判斷語句也是不合適的,那麼就沒有比較好的辦法了。還要進一步探索....

*/ 這些都是我在考計算機等級考試碰到過的題目哦,演算法都是相當典型的,有的是書上看到的,有的是自己擴充套件的。還是要自己認真哦。。。

由於文字太多第三題提交不上來了哦。。不好意思。。。

c語言問題要將100元錢換成1元2元5元的零錢

程式原始碼如下 迴圈巢狀迴圈次數少的盡量在外!include include using namespace std int main cout 換法有 count 種 n 輸出換法種數 system pause return 0 程式執行結果如下 擴充套件資料 其他實現方法 include int...

c語言程式設計答案 100元買100隻雞,公雞5元乙隻,母雞

使用窮舉法。c語言程式 include void main 執行結果 include int a 3 int same int b int main printf 共有方案 d種。n cnt return 0 void main 寫個三重bai迴圈來尋找購買du方案。include int main...

現有1角2角5角1元2元5元10元50元人民幣

除100元人民幣以外每張均有取和不取2種情況,100元人民幣的取法有3種情況,再減去全不取的1種情況,所以共有1535種.這是個數學問題 1l算的很對的卻是1535 現有5分,1角,2角,5角,1元,2元,5元,10元,20元,50元,100元面值的人民幣各一張,10 1111 10 2 1 55 ...