演算法:從鍵盤輸入一定金額(以元為單位,如345.78),然後顯示支付該金額的各人民幣數量
從鍵盤輸入一定金額(以元為單位,如345.78),然後顯示支付該金額的各人民幣數量,要求顯示100元、50元、10元、5元、2元、1元、5角、1角、5分、1分各多少(輸出面額最大值:比如 345.78 = 100×3 + 10×4 + 5×1 + 0.5×1 + 0.1×2 + 0.01×8)
#include "stdio.h"
//面額
double deno(int i)
{
switch (i)
{
case 0:
return 100;
case 1:
return 50;
case 2:
return 10;
case 3:
return 5;
case 4:
return 2;
case 5:
return 1;
case 6:
return 0.5;
case 7:
return 0.1;
case 8:
return 0.05;
case 9:
return 0.01;
default:
return 0;
break;
}
}
int main(void)
{
float money = 0;
int number[10] = { 0 };
printf("請輸入金額:");
scanf_s("%lf", &money);
//有些數不能由二進位制數精確表示,所以儲存在計算機中會產生誤差,需要人工彌補誤差
money += 0.001;
for (int i = 0; i <= 9; i++)
{
for (; money >= deno(i); number[i]++)
money -= deno(i);
}
printf("需要:\n100元: %d 張\n50元: %d 張\n" , number[0], number[1]);
printf("10元: %d 張\n5元: %d 張\n", number[2], number[3]);
printf("2元: %d 張\n1元: %d 張\n", number[4], number[5]);
printf("0.5元: %d 張\n0.1元: %d 張\n", number[6], number[7]);
printf("0.05元: %d 張\n0.01元: %d 張\n", number[8], number[9]);
return 0;
}
若是要求輸出所有面額方案,則可以通過外套一個迴圈實現
main()函式修改如下:
int main(void)
{
double money = 0;
int number[10] = { 0 };
double cons = 0;
printf("請輸入金額:");
scanf_s("%lf", &money);
//有些數不能由二進位制數精確表示
money += 0.001;
cons = money;
for (int j = 0; j <= 9; j++)
{
money = cons;
//初始化陣列中的元素
for (int k = 0; k <=9; k++)
{
number[k] = { 0 };
}
for (int i = j; i <= 9; i++)
{
for (; money >= deno(i); number[i]++)
money -= deno(i);
}
printf("方法%d:\n", j+1);
printf("需要:\n100元: %d 張\n50元: %d 張\n", number[0], number[1]);
printf("10元: %d 張\n5元: %d 張\n", number[2], number[3]);
printf("2元: %d 張\n1元: %d 張\n", number[4], number[5]);
printf("0.5元: %d 張\n0.1元: %d 張\n", number[6], number[7]);
printf("0.05元: %d 張\n0.01元: %d 張\n", number[8], number[9]);
}
return 0;
}
相關推薦
演算法:從鍵盤輸入一定金額(以元為單位,如345.78),然後顯示支付該金額的各人民幣數量
從鍵盤輸入一定金額(以元為單位,如345.78),然後顯示支付該金額的各人民幣數量,要求顯示100元、50元、10元、5元、2元、1元、5角、1角、5分、1分各多少(輸出面額最大值:比如 345.78 = 100×3 + 10×4 + 5×1 + 0.5×1 +
C++:從鍵盤輸入一個整數,判斷該數是幾位數,並且逆向輸出該數字
#include using namespace std; int change(int n) //逆向輸出該數 {int rn; for(int i=0;i<10;i++) { if(n>0) { rn=rn*10+n%10; n=n/10;
編寫程式,判斷從鍵盤輸入的字元中數字的個數 大寫字母的個數,小寫字母的個數,其他字元的個數,以*作為字元輸出的標誌
#include <stdio.h> #include <string.h> int main() { char x[1000]; printf("請輸入字串:\n"); gets(x); int l=strlen(x); int a
彙編基礎練習題6:從鍵盤輸入數字字元,利用程式得到對應的數值,在利用2中的輸出子程式,將得到的數值輸出。
彙編基礎練習題6: 從鍵盤輸入數字字元,利用程式得到對應的數值,在利用練習題2中的輸出子程式,將得到的數值輸出。 編譯工具:Masm for Windows 整合實驗環境2012.5 (附帶一個工具下載地址https://download.csdn.net/download/qq_3
C語言:從鍵盤輸入10個數存入一維陣列,求這10個數中的最大值和最小值並輸出
題目:從鍵盤輸入10個數存入一維陣列,求這10個數中的最大值和最小值並輸出。 下面是我寫的程式,我用visual studio 2010編譯通過,執行正常。 源程式程式碼如下: #include "stdio.h" //從鍵盤輸入10個數存入一維陣列,求這10個數中的
初學java:從鍵盤輸入字串,並統計其中數字字元的個數
import java.util.Scanner; public class Test {public static void main(String[] args) {String s=null;int count = 0;Scanner in=new Scanner(System.in);System.o
從鍵盤輸入10個學生的成績並儲存在列表中,求成績最高者的序號和成績
解決了最後一對無法輸出 解決了多個最大成績輸出錯位 縮減了不必要的程式碼 ls=[] j=[] k=[] for c in range(11): xh=int(input('')) fen=int(input('')) i=[]
如何讓Linux定時任務crond以秒為單位執行(如每隔3秒)
需要用到Shell指令碼每隔3秒鐘去監控一個軟體程序的執行狀態,發現crond似乎只支援到分,不知道秒,怎麼辦呢? 第一種方法: 當然首先想到的是寫一個觸發的指令碼,在觸發指令碼中使用死迴圈來解決此問題,如下: cat kick.sh #!/bin/bash wh
java:接受用戶從鍵盤輸入的三個整數,並輸出最大值和最小值
scan out sca system () 最小值 public tin 代碼 import java.util.Scanner 從鍵盤輸入要在開頭聲明這個。 Scnner in=new Scanner(Syetem.in); 聲明Scnner類型的in 如果要從鍵盤輸入
python 從鍵盤輸入一個字串,將小寫字母全部轉換成大寫字母,將字串以列表的形式輸出(如果字串包含整數取整型)?
str1 = input("請輸入任意字串: ") list1= [] #儲存字串 list2= [] #儲存數字 for i in str1: if i.isdigit() == True: #判斷當前字元是否為字元 list2.append(int(i)) else:
# 從鍵盤輸入一個正整數,用2的冪次方的形式輸出。約定冪次方用括號來表示,即表示為2(b),b=1時,冪省略。例如139=2^7+2^3+2^1+2^0,即:2(7)+2(3)+2+2(0)
樣例輸入: 402 樣例輸出: 2(8)+2(7)+2(4)+2 要求:冪不能重複,如:139=26+26+23+21+20(出現了2個6次方) 參考 C 程式碼: #include<stdio.h> #include<stdlib.h>
彙編基礎練習題7:編寫輸入子程式,功能是從鍵盤輸入數字字元,利用程式得到對應的數值,並在主程式中驗證。
彙編基礎練習題7: 編寫輸入子程式,功能是從鍵盤輸入數字字元,利用程式得到對應的數值,並在主程式中驗證。 編譯工具:Masm for Windows 整合實驗環境2012.5 (附帶一個工具下載地址https://download.csdn.net/download/qq_36931
有五個學生,每個學生有3門課的成績, 從鍵盤輸入以上資料(包括姓名,三門課成績), 輸入的格式:如:zhagnsan,30,40,60計算出總成績, 並把學生的資訊和計算出的總分數高低順序存放在磁碟文
有五個學生,每個學生有3門課的成績, 從鍵盤輸入以上資料(包括姓名,三門課成績), 輸入的格式:如:zhagnsan,30,40,60計算出總成績, 並把學生的資訊和計算出的總分數高低順序存放在磁碟檔案"stud.txt"中。 1:定義一個描述學生的類2定義一個操作學生的工
從鍵盤輸入一個表示式,試編寫演算法計算表示式的值。
hanshu.h://運算子棧 #include <iostream> #include <string> using namespace std; #include "Status.h" typedef struct {char *base;char *top;int stacksi
小明去美國旅遊,美國溫度以華氏溫度計量,她需要將華氏溫度轉換為攝氏溫度,編寫程式實現此功能. 要求: 從控制檯輸入華氏溫度資訊,並且分別列印最後的華氏溫度和攝氏溫度的結果
public class Test_9 {/*小明去美國旅遊,美國溫度以華氏溫度計量,她需要將華氏溫度轉換為攝氏溫度,編寫程式實現此功能.要求:從控制檯輸入華氏溫度資訊,並且分別列印最後的華氏溫度和攝氏溫度的結果 攝氏溫度=5/9.0*(華氏溫度
從鍵盤輸入某個十進位制小數或整數,轉換成對應的二進位制小數並輸出。 (查詢十進位制小數轉換成二進位制小數的演算法,使用迴圈來實現。 最多保留小數位後7位數字即可)演算法
/*演算法:把小數分成兩截,一截是整數,一截是小數。讓整數除以2取餘,倒敘輸出來 打印出二進位制(第一個數為個位,第二個數為10位,即乘以10,第三位數為百位, 即乘以100。。以此類推,即迴圈乘以10),直到除數 為0為止。小數乘以2,取整然後列印2進位制,直到小數部分
C++課後練習——從鍵盤輸入一組非0整數,以輸入0標誌結束,求這組整數的平均值, 並統計其中正數和負數的個數。
從鍵盤輸入一組非0整數,以輸入0標誌結束,求這組整數的平均值, 並統計其中正數和負數的個數。 #include <iostream> using namespace std; void m
檔案操作:有五個學生,每個學生有 3 門課的成績,從鍵盤輸入以上資料(包 括學生號,姓名,三門課成績),計算出平均成績,將所輸入有的資料和計算出 的平均分數存放在磁碟檔案 "stud "中
import java.io.BufferedWriter; import java.io.FileWriter; import java.io.IOException; import java.uti
C++:利用如下公式,編寫函式計算∏的值,直到最後一項的絕對值小於e,主程式接收從鍵盤輸入的e,輸出∏的值(保留5位小數)。 ∏/4 = 1-1/3+1/5-1/7...
利用如下公式,編寫函式計算∏的值,直到最後一項的絕對值小於e,主程式接收從鍵盤輸入的e,輸出∏的值(保留5位小數)。 ∏/4 = 1-1/3+1/5-1/7...#include <iostre
C語言:有5個學生,每個學生有3門課的成績,從鍵盤輸入學生資料,計算平均成績
有5個學生,每個學生有3門課的成績,從鍵盤輸入學生資料(包括學生號、姓名、三門課成績),計算平均成績,將原有資料和計算出的平均分數存放在磁碟檔案“stud”中 對於平均成績的思路就是:把平均成績當做結構體的一項 在輸入3門課成績以獲得平均成績時,要注意在c語言中,三門成績