tft每日頭條

 > 科技

 > c盤大小計算公式

c盤大小計算公式

科技 更新时间:2024-07-01 20:12:40

本來計劃一個暑假多刷一些關于PAT的題目,以及提升一下自己的編程能力。

結果,暑假倒是過去了,也步入研二了,但是這些文章呢,一直遲遲沒有寫出來。

我感覺非常不好意思,所以,從今天開始,我又回來繼續寫這些關于編程的文章了。

一方面呢,是為了提升自己的實力,另一方面呢,也是為了讓更多小夥伴能跟我一起提升編程技術。

今天這道題目呢,是收錄在PAT乙級中的第1010題,也就是一元多項式求導。

題目要求如下:

1、以指數遞降的方式輸入多項式非零項系數和指數(絕對值均為不超過1000的整數),但這個括号裡的内容,其實并無太大作用,其實可以忽略這個,因為在這道題目裡,它并沒有要求對整數的絕對值進行一個判斷。

2、要求以與輸入相同的格式來輸出結果,也就是輸出導數多項式的非零項系數和指數,但是結尾不能有多餘空格,以及要特别注意一點:“零多項式”的指數和系數都是0,表示為0 0。

我來根據題目給的例子,來講清楚這道題目的實現原理。

實現原理分析

c盤大小計算公式(用C語言進行編程)1

我一直認為,在正式開始做編程題之前,理清邏輯是非常重要的。

而流程圖恰好能幫助我們來理清邏輯。

繪出流程圖,理清楚程序邏輯

c盤大小計算公式(用C語言進行編程)2

如上圖所示,這就是該程序的流程圖。

代碼實現

根據該流程圖,我們就能梳理清楚如何寫代碼。

1、要輸入非零項指數和系數,也就是需要用到一個scanf函數來分别輸入指數和系數。

而且是要在循環輸入,這裡呢因為沒有指定輸入指數和系數的數量,所以可以用到一個while(1)作為默認值,以及之後進行一個if語句判斷,如果回車enter之後,那就退出該循環。

可以用到if(getchar()!='\n')來進行回車輸入判斷。

2、對零多項式進行一個判斷,我們可以注意到,求導之前的一元多項式,是有常數項的,也就是-2x^0,求導之後得到的指數系數分别為0和-1,常數項的導數為0。

還有零多項式的指數和系數都為0,我們隻需要考慮系數為0的情況,因為指數為0的時候,這個數就直接為0了。

c盤大小計算公式(用C語言進行編程)3

3、這也是我在之前的幾篇文章中一直會提到的,就是最後一列沒有空格的問題,完全可以新定義一個變量count,然後開始進行記錄,如果>0的時候,就輸出空格,就是每一次輸出之後加上空格,直到最後一次為止是沒有空格的。

在做這道題目的時候,我也遇到過許多問題:

錯誤踩點

比方說我沒有對printf("0 0")進行一個額外判斷,要注意,這種情況,隻有當number2為0的時候,且還要滿足一個條件,也就是在輸出結果最終為0的時候,不要出現重複的0,也就是需要把0給隐藏。

問題代碼部分:

//一元多項式求導 #include<stdio.h> int main(){ int number1 = 0; int number2 = 0; int count = 0; while(1){ scanf("%d %d", &number1, &number2); if(number2==0){//這部分代碼是存在問題的,所以需要更改。 printf("0 0"); } if(number2!=0){ if(count>0){ printf(" "); } printf("%d %d", number1*number2, number2-1); count ; } //這裡就是需要特别關注的地方了,為什麼需要用到count來進行計數,就是為了解決空格 //空格問題需要在這裡來進行解決,因為我們在第一次輸出結果的時候 //是從最開始開始的,比方說從12 3這樣是一對,那麼下一對-10 1與這一對之間是有一個空格隔開的 //所以需要用到一個count //至于上面的printf("0 0");部分,就是當count為初始值的時候,也就是不滿足count不為零的時候 if(getchar()=='\n'){ break; } } return 0; }

c盤大小計算公式(用C語言進行編程)4

c盤大小計算公式(用C語言進行編程)5

正确結果與代碼實現

//一元多項式求導 #include<stdio.h> int main(){ int number1 = 0; int number2 = 0; int count = 0; while(1){ scanf("%d %d", &number1, &number2); if(number2==0){ if(count==0){ printf("0 0"); } } if(number2!=0){ if(count>0){ printf(" "); } printf("%d %d", number1*number2, number2-1); count ; } if(getchar()=='\n'){ break; } } return 0; }

測試結果

c盤大小計算公式(用C語言進行編程)6

c盤大小計算公式(用C語言進行編程)7

很顯然結果是正确的,但是呢,在具體做題的時候我會遇到許多問題,需要靜下心來一點點來解決,最終成功完成這道題目了。

總結

總的來說,這道題目其實難度并不大,但是需要細心細心再細心,不然就會出很多錯誤,特别是注意用到while循環,以及用條件語句對回車結束循環進行判斷。

,

更多精彩资讯请关注tft每日頭條,我们将持续为您更新最新资讯!

查看全部

相关科技资讯推荐

热门科技资讯推荐

网友关注

Copyright 2023-2024 - www.tftnews.com All Rights Reserved