1. 程式人生 > >C程序練習

C程序練習

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(
"%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; }
View Code

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()
{
    int
flag=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; }
View Code

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程序練習