1. 程式人生 > >《C程式設計快速進階大學教程》第六章程式設計題

《C程式設計快速進階大學教程》第六章程式設計題

1.輸入一個5位整數,將每位的資料進行分離,要求逆序輸出對應的數,即分別按照字元型輸出個位、十位、百位、千位以及萬位上的整數。例如,輸入12345,輸出5-4-3-2-1。

#include <stdio.h>
#include <stdlib.h>

int main()
{
    int R;
    int z[5];
    printf("輸入一個5位整數:");
    scanf("%d",&R);
    int i;
    for(i=0;i<5;i++){
        z[i] = R%10;
        R =
R/10; } int j; for(j=0;j<5;j++){ printf("%d ",z[j]); } return 0; }

2.輸入三角形的三個邊長,計算最大角的正弦值及三角形面積。
注意對輸入資料有效性的檢測及三角形邊長合理性的判斷。

#include <stdio.h>
#include <stdlib.h>
#include <math.h>

int main()
{
    float a,b,c;
    printf("請輸入三角形三邊邊長:(請從大到小輸入)\n"
); scanf("%f %f %f",&a,&b,&c); //判斷邊長是否合理 if(a+b>c && a+c>b && b+c>a && a>b-c && b>a-c && c>a-b){ //計算面積 float p = (a+b+c)/2; float S = sqrt(p*(p-a)*(p-b)*(p-c)); printf("三角形的面積為:%f \n",S); //計算正弦
float cosA = (b*b+c*c-a*a)/(2*b*c); float sinA = sqrt(1-cosA*cosA); printf("最大角的正弦為: %f \n",sinA); } else{ printf("輸入的三邊邊長無法構成三角形"); } return 0; }

3.編寫程式預測斷電後冰箱的溫度。斷電後經過一段時間,溫度保持情況由如下公式決定:

其中,t為斷電後經過的時間(小時),T為溫度(℃)。經過若干小時候冰箱溫度接近室溫並保持不變. 假設室溫為18℃. 程式提示使用者輸入時間,它以整數小時和分鐘表示,需要將其轉換為浮點型的小時數。輸出此時的溫度值(小數點後2位有效數字)。

#include <stdio.h>
#include <stdlib.h>
#include <time.h>

int main()
{
    float T;//溫度
    float t;//時間
    int h,m;
    printf("請輸入時間:(時:分)");
    scanf("%d : %d",&h,&m);

    t = h + (float)m/60;
   // printf("%f",t);
    T = 4*t*t/(t+2) - 20;
    if( T >= 18 ){
        printf("冰箱此時的溫度值:18");//室溫

    }else{
         printf("冰箱此時的溫度值:%.2f \n",T);
    }
    return 0;
}

4.程式設計計算汽車的平均速度
汽車在高速公路上勻速行駛。沿途都有距離上路地點的里程標誌,已知開始和結束的里程,分別輸入上路時間和下路時間(時、分、秒),假設汽車上路和下路的時間在同一天。計算汽車在該段形式的平均速度,並以“公里數/每小時”的形式輸出平均速度。程式的執行介面如所示。

#include <stdio.h>
#include <stdlib.h>

int main()
{
    int startL,endL;//開始里程和結束里程
    int startH,startM,startS;//開始時間
    int endH,endM,endS;//結束時間

    printf("所有輸入都為整數\n");
    printf("開始里程?\n");
    scanf("%d",&startL);
    printf("開始時間:(時 分 秒)\n");
    scanf("%d %d %d",&startH,&startM,&startS);
    printf("結束里程?\n");
    scanf("%d",&endL);
    printf("結束時間:(時 分 秒)\n");
    scanf("%d %d %d",&endH,&endM,&endS);

    float startT,endT,T;
    int H,M,S;
    float v;
    startT = startH + (float)startM/60 + (float)startS/60/60;
    endT = endH + (float)endM/60 + (float)endS/60/60;
    T = endT - startT;
    printf("%f %f %f ...\n",startT,endT,T);

    int sT,eT;
    sT = startS + startM*60 + startH*60*60;
    eT = endS + endM*60 + endH*60*60;
    H = (eT-sT)/60/60;
    M = (eT-sT)/60 - H*60;
    S = (eT-sT) - H*3600 -M*60;

    v = (endL - startL)/T;

    printf("一共行駛了 %d 公里。\n",endL-startL);
    printf("一共花了 %d 小時 %d 分 %d 秒 \n",H,M,S);
    printf("速度為:%.4f 公里/小時 \n",v);

    return 0;
}