C程序練習
阿新 • • 發佈:2018-04-06
lose 年輕 hide return cas HA nbsp 智力 計算
1.編程從鍵盤任意輸入兩個時間(例如4時55分和1時25分),計算並輸出這兩個時間之間的間隔。要求不輸出時間差的負號。
#include<stdio.h> int main() { int hour1,minute1,hour2,minute2,hour3,minute3,time,time1,time2; printf("Input time one(hour, minute):"); scanf("%d,%d",&hour1,&minute1); printf("Input time two(hour, minute):"); scanf(View Code"%d,%d",&hour2,&minute2); time1=hour1*60+minute1; time2=hour2*60+minute2; if(time1>time2) time=time1-time2; else time=time2-time1; hour3=time/60; minute3=time%60; printf("%d hour %d minute\n",hour3,minute3); return 0; }
2.
設capital是最初的存款總額(即本金),rate是整存整取的存款年利率,n 是儲蓄的年份,deposit是第n年年底賬號裏的存款總額。已知如下兩種本利之和的計算方式:
-
按復利方式計息的本利之和計算公式為:deposit = capital * (1 + rate) n
-
按普通計息方式計算本利之和的公式為:deposit = capital * (1 + rate * n)
已知銀行整存整取不同期限存款的年息利率分別為:
存期1年,利率為 0.0225
存期2年,利率為 0.0243
存期3年,利率為 0.0270
存期5年,利率為 0.0288
存期8年,利率為 0.0300
若輸入其他年份,則輸出"Error year!"
#include<stdio.h> #include<math.h> int main() { intView Codeflag=1; int year; double capital,rate,deposit; char interest; printf("Input capital, year:"); scanf("%lf,%d,&capital",&capital,&year); switch(year) { case 1:rate=0.0225; break; case 2:rate=0.0243; break; case 3:rate=0.0270; break; case 5:rate=0.0288; break; case 8:rate=0.0300; break; default:flag=0; } printf("Compound interest (Y/N)?"); scanf(" %c",&interest); if((interest==‘y‘||interest==‘Y‘)&&flag) { deposit=capital*pow(1+rate,year); printf("rate = %.4f, deposit = %.4f\n",rate,deposit); } else if((interest==‘n‘||interest==‘N‘)&&flag) { deposit=capital*(1+rate*year); printf("rate = %.4f, deposit = %.4f\n",rate,deposit); } else { printf("Error year!\n"); } return 0; }
3.
美國數學家維納(N.Wiener)智力早熟,11歲就上了大學。他曾在1935~1936年應邀來中國清華大學講學。一次,他參加某個重要會議,年輕的臉孔引人註目。於是有人詢問他的年齡,他回答說:“我年齡的立方是一個4位數。我年齡的4次方是一個6位數。這=10個數字正好包含了從0到9這10個數字,每個都恰好出現1次。”請你編程算出他當時到底有多年輕。
#include <stdio.h> #include <stdlib.h> #include <math.h> int tenBit(int n,int *a); int main() { for(int x=10;x<=22;++x) { int a[10]={0,1,2,3,4,5,6,7,8,9}; int d = tenBit(x*x*x,a)+tenBit(x*x*x*x,a); if(d==10){ printf("age=%d\n",x); break; } } return 0; } int tenBit(int n,int *a){ int cnt =0; while(n){ for(int i=0;i<10;++i){ if(n%10==a[i]){ a[i]=-1; cnt++; } } n/=10; } return cnt; }View Code
C程序練習