日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當(dāng)前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

C语言程序设计第三次作业

發(fā)布時間:2023/12/9 编程问答 29 豆豆
生活随笔 收集整理的這篇文章主要介紹了 C语言程序设计第三次作业 小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.

(一)改錯題
計算f(x)的值:輸入實(shí)數(shù)x,計算并輸出下列分段函數(shù)f(x)的值,輸出時保留1位小數(shù)。

輸入輸出樣例1:
  Enterr x: 10.0
  f(10.0) = 0.1
輸入輸出樣例2:
  Enter x: 234
  f(234.0) = 234.0
源程序(有錯誤的程序)

#include <stdio.h> int main(void){ double x,y;printf("Enter x: \n"); scanf("=%f", x);if(x = 10);{ y = 1 / x}else (x != 10){y = x;}printf("f(%.2f) = %.lf\n" x y); return 0; }

錯誤信息1:

錯誤原因:第九行的算式后面沒有加分號。
改正方法:在第九行的算式后面加上分號。
錯誤信息2:

錯誤原因:第七行判斷語句后面多加了分號。
改正方法:刪去第七行后面的分號。
錯誤信息3:

錯誤原因:第十一行else語句后面多了條件。
改正方法:刪去第十一行后面的條件。
錯誤信息4:

錯誤原因4:第十五行引號后面少了逗號。
改正方法:在第十五行引號后面加上逗號。
錯誤信息5:

錯誤原因:第十五行變量之間少了逗號。
改正方法:在第十五行變量之間加上逗號。
錯誤信息6:

錯誤原因:第一個輸出語句多加了\n。
改正方法:刪去\n。
錯誤信息7:

錯誤原因:最后的輸出語句x對應(yīng)的值錯了。
改正方法:把第十五行的輸出語句中的變量 x 對應(yīng)的 %.2f 改為 %.1f 。
錯誤信息8:

錯誤原因:輸入語句后面沒有加取地址符。
改正方法:在輸入語句x前面加上取地址符。
錯誤信息9:

錯誤原因:第十五行的輸出語句中變量 y 對應(yīng)的為 %.lf 。
改正方法:把第十五行的輸出語句中的變量 y 對應(yīng)的 %.lf 改為 %.1f 。
錯誤信息10:

錯誤原因:第六行的輸入語句中 &x 對應(yīng)的為 =%f。
改正方法:把第六行的輸入語句中 &x 對應(yīng)的 =%f 改為 %lf。
錯誤信息11:

錯誤原因:判斷語句條件錯誤。
改正方法:條件中再加一個“=”號。

(二)學(xué)習(xí)總結(jié)
1.if(a)if(b) x=x+1;else y=y+1; 的確切含義是什么?這個else應(yīng)該和哪個if配對?如何明確表達(dá)這種配對方法?將該段代碼按照規(guī)范化的格式進(jìn)行書寫。
答:確切含義為若同時符合條件a,b則運(yùn)行x=x+1;若不符合條件a,則運(yùn)行y=y+1。
else和離它最近的第二個if配對。
代碼:

if(a) {if(b){x=x+1;} } else {y=y+1; }

2.C語言的表達(dá)式 (-10< x <10)能夠表達(dá)x在區(qū)間(-10,10)嗎?為什么?如果不能,正確的表達(dá)式應(yīng)該怎么寫?
答:不能。因?yàn)闂l件從左到右運(yùn)行。
正確表達(dá)式應(yīng)為:
if(x>-10 && x<10)

3.C語言中輸入數(shù)據(jù)時,如果遇到非法字符,則認(rèn)為輸入結(jié)束。運(yùn)行程序(1),輸入123a,看看輸出結(jié)果是什么?你能解釋是為什么嗎?,
程序(1)

#include <stdio.h> int main() { int a, b;scanf("%d %d", &a, &b);printf("a = %d, b = %d\n", a, b);return 0; }

輸入123a后結(jié)果為:

原因:遇到非法字符%d不能識別,所以輸出結(jié)果錯誤,有問題,123a為一個數(shù)據(jù),相當(dāng)于b沒有輸入數(shù)據(jù),所以輸出為隨機(jī)數(shù)1。
scanf()函數(shù)的返回值是成功讀入數(shù)據(jù)的個數(shù),如果沒有讀取任何數(shù)據(jù),則返回0。運(yùn)行程序(2),分別輸入123 45和123a,看看輸出結(jié)果是什么?為什么?
程序(二)

#include <stdio.h> int main() { int a, b,n;n = scanf("%d %d", &a, &b);printf("n = %d\n", n);return 0; }

輸出結(jié)果:

當(dāng)你成功輸入兩個變量的時候第一次兩個變量都合法,所以n讀出為2。當(dāng)你輸入123a的時候含有非法字符,它不能讀取出來,所以n只能讀出一個整形常量,所以n=1。

修改程序(1),當(dāng)輸入非法數(shù)據(jù)時,輸出“Input error!".樣例如下:

4.對其他你認(rèn)為需要進(jìn)行總結(jié)的內(nèi)容進(jìn)行總結(jié)。
在用else if語句的時候要注意每個else和if的對應(yīng)關(guān)系,每個else,if語句執(zhí)行時要加上中括號。
注意else if后面不能加分號。
不能忘了在輸入語句后面的變量前面加取地址符。

(三)實(shí)驗(yàn)總結(jié)

  • (1)題目
    判斷一個5位數(shù)是不是回文數(shù)。例如12321是一個回文數(shù),即它的個位與萬位相同,十位與千位相同。
    (2)流程圖

    (3)源代碼

    # include<stdio.h>
    int main()
    {
    int n,w,q,s,g;
    scanf("%d",&n);
    w=n/10000;
    g=n%10;
    q=n/10%10;
    s=n%10000/1000;
    if(w==g && q==s )
    {
    printf("yes");
    }
    else
    printf("no");

    return 0;

    }

  • (4)測試數(shù)據(jù)及運(yùn)行結(jié)果

    (5)實(shí)驗(yàn)分析
    問題1:一開始不會分離各個位數(shù)。
    解決辦法:通過詢問老師會了。

  • (1)題目
    本題要求根據(jù)火車的出發(fā)時間和達(dá)到時間,編寫程序計算整個旅途所用的時間。
    (2)流程圖

    (3)源代碼

    # include <stdio.h>
    int main()
    {
    int a,b,c,d,s,f,m,n;
    scanf("%d %d",&m,&n);
    a = m/100;
    b = n/100;
    c = m%100;
    d = n%100;
    f = (b-a)*60+(d-c);
    s = f/60;
    f = f%60;
    if(0<s<10)
    {
    if(0<f<10)
    {
    printf("%02d:%02d",s,f);
    }
    else
    {
    printf("%02d:%d",s,f);
    }
    }
    else
    {
    if(24>=s>=10)
    {
    if(0<f<10)
    {
    printf("%d:%02d",s,f);
    }
    else
    {
    printf("%d:%d",s,f);
    }
    }
    }

    return 0;

    }

  • (4)測試數(shù)據(jù)及運(yùn)行結(jié)果

    (5)實(shí)驗(yàn)分析
    問題:一開始沒有考慮小于10分鐘的情況。
    解決辦法:加了一個判斷條件。

  • (1)題目
    中國有句俗語叫“三天打魚兩天曬網(wǎng)”。假設(shè)某人從某天起,開始“三天打魚兩天曬網(wǎng)”,問這個人在以后的第N天中是“打魚”還是“曬網(wǎng)”?
    (2)流程圖

    (3)源代碼

    # include <stdio.h>
    int main()
    {
    int n,m;

    scanf("%d",&n);m = n%5;if (1000>=n>0);{if(m==0){printf("Drying in day %d",n);}else{if(m<=3){printf("Fishing in day %d",n);}else{printf("Drying in day %d",n);}}}return 0;

    }

  • (4)測試數(shù)據(jù)及實(shí)驗(yàn)結(jié)果

  • (1)題目
    為了提倡居民節(jié)約用電,某省電力公司執(zhí)行“階梯電價”,安裝一戶一表的居民用戶電價分為兩個“階梯”:月用電量50千瓦時(含50千瓦時)以內(nèi)的,電價為0.53元/千瓦時;超過50千瓦時的,超出部分的用電量,電價上調(diào)0.05元/千瓦時。請編寫程序計算電費(fèi)。
    (2)流程圖

    (3)源代碼

    # include <stdio.h>
    int main()
    {
    int n;
    double m;
    scanf("%d",&n);
    if(n>=0)
    {
    if(n<=50)
    {
    m = n0.53;
    printf("cost = %.2f",m);
    }
    else
    {
    m = 500.53+(n-50)*0.58;
    printf("cost = %.2f",m);
    }
    }
    else
    {
    printf("Invalid Value!");
    }
    return 0;
    }

  • (4)測試數(shù)據(jù)及運(yùn)行結(jié)果

    (四)PTA提交列表



    轉(zhuǎn)載于:https://www.cnblogs.com/lyw7777777/p/7748594.html

    總結(jié)

    以上是生活随笔為你收集整理的C语言程序设计第三次作业的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

    如果覺得生活随笔網(wǎng)站內(nèi)容還不錯,歡迎將生活随笔推薦給好友。