1. 程式人生 > >PAT練習基礎程式設計題目之求單鏈表結點的階乘和

PAT練習基礎程式設計題目之求單鏈表結點的階乘和

求單鏈表結點的階乘和

導語:連結串列一直是我的弱項,做這道題做了比較久,程式本身不難,只是對指標的理解不到位,況且很久沒有接觸指標相關,遺忘了不少。風蕭蕭兮易水寒,壯士一去兮不復還。
- 本題要求實現一個函式,求單鏈表L結點的階乘和。這裡預設所有結點的值非負,且題目保證結果在int範圍內。
- 函式介面定義:
int FactorialSum( List L );

typedef struct Node *PtrToNode;
struct Node {
    int Data; /* 儲存結點資料 */
    PtrToNode Next; /* 指向下一個結點的指標 */
};
typedef
PtrToNode List; /* 定義單鏈表型別 */ int FactorialSum( List L ); int main() { int N, i; List L, p; scanf("%d", &N); L = NULL; for ( i=0; i<N; i++ ) { p = (List)malloc(sizeof(struct Node)); scanf("%d", &p->Data); p->Next = L; L = p; } printf
("%d\n", FactorialSum(L)); return 0; } int fun(int n){ if(n==0 || n==1) return 1; else return n*fun(n-1); } int FactorialSum( List L ){ int sum = 0; while(L!=NULL){ int m = fun(L->Data); sum += m; L = L->Next; } return sum; }

結束語:回頭還得好好看看指標,語法這裡瞭解的不透徹,之前一直在做Java,學c語言的那會也不夠認真,不管了,天將降大任於斯人也,必先苦其心志,餓其體膚,空乏其身。。。。

相關推薦

PAT練習基礎程式設計題目單鏈結點

求單鏈表結點的階乘和 導語:連結串列一直是我的弱項,做這道題做了比較久,程式本身不難,只是對指標的理解不到位,況且很久沒有接觸指標相關,遺忘了不少。風蕭蕭兮易水寒,壯士一去兮不復還。 - 本題要求實現一個函式,求單鏈表L結點的階乘和。這裡預設所有結點的值非

PAT基礎程式設計題目集——6-6 單鏈結點

原題目: 本題要求實現一個函式,求單鏈表L結點的階乘和。這裡預設所有結點的值非負,且題目保證結果在int範圍內。 函式介面定義: int FactorialSum( List L ); 其中單鏈表List的定義如下: typedef struct Node *PtrToNo

PTA基礎程式設計題目集6-6單鏈結點(函式題)

本題要求實現一個函式,求單鏈表L結點的階乘和。這裡預設所有結點的值非負,且題目保證結果在int範圍內。 函式介面定義: 1 int FactorialSum( List L ); 其中單鏈表List的定義如下: 1 typedef struct Node *PtrToNode; 2 s

6-6 單鏈結點(15 分) 本題要求實現一個函式,單鏈L結點。這裡預設所有結點的值非負,且題目保證結果在int範圍內。

int FactorialSum( List L ){  int max=0,sum=0;  List p,head;  head=L;  p=head;  while(p!=NULL)  {    if(max<p->Data)    max=p->Dat

6-2 單鏈結點

本題要求實現一個函式,求單鏈表L結點的階乘和。這裡預設所有結點的值非負,且題目保證結果在int範圍內。 函式介面定義: int FactorialSum( List L ); 其中單鏈表List的定義如下: typedef struct Node *PtrToNode; struct

PAT團隊程式設計天梯賽-習題集L1-013 計算

題目要求題目分析說不清楚,還是看程式碼吧示例程式碼import java.util.Scanner; public class L1_013 { public static void main(Str

PAT基礎程式設計題目集——6-5 自定型別元素的最大值

原題目: 本題要求實現一個函式,求N個集合元素S[]中的最大值,其中集合元素的型別為自定義的ElementType。 函式介面定義: ElementType Max( ElementType S[], int N ); 其中給定集合元素存放在陣列S[]中,正整數N是陣列元素個數

PAT基礎程式設計題目集——6-4 自定型別元素的平均

原題目: 本題要求實現一個函式,求N個集合元素S[]的平均值,其中集合元素的型別為自定義的ElementType。 函式介面定義: ElementType Average( ElementType S[], int N ); 其中給定集合元素存放在陣列S[]中,正整數N是陣列元

PAT基礎程式設計題目集——6-2 多項式

原題目: 本題要求實現一個函式,計算階數為n,係數為a[0] ... a[n]的多項式f(x)=∑​i=0​n​​(a[i]×x​i​​) 在x點的值。 函式介面定義: double f( int n, double a[], double x ); 其中n是多項式的階數,a[

PAT基礎程式設計題目集——6-9 統計個位數字

原題目: 本題要求實現一個函式,可統計任一整數中某個位數出現的次數。例如-21252中,2出現了3次,則該函式應該返回3。 函式介面定義: int Count_Digit ( const int N, const int D ); 其中N和D都是使用者傳入的引數。N的值不超過i

PAT基礎程式設計題目集——6-8 簡單計算

原題目: 本題要求實現一個計算非負整數階乘的簡單函式。 函式介面定義: int Factorial( const int N ); 其中N是使用者傳入的引數,其值不超過12。如果N是非負整數,則該函式必須返回N的階乘,否則返回0。 裁判測試程式樣例: #include

PAT基礎程式設計題目集——6-7 統計某類完全平方數

原題目: 本題要求實現一個函式,判斷任一給定整數N是否滿足條件:它是完全平方數,又至少有兩位數字相同,如144、676等。 函式介面定義: int IsTheNumber ( const int N ); 其中N是使用者傳入的引數。如果N滿足條件,則該函式必須返回1,否則返回0

PAT基礎程式設計題目集——6-3 簡單求和

原題目: 本題要求實現一個函式,求給定的N個整數的和。 函式介面定義: int Sum ( int List[], int N ); 其中給定整數存放在陣列List[]中,正整數N是陣列元素個數。該函式須返回N個List[]元素的和。 裁判測試程式樣例: #includ

PAT基礎程式設計題目集——6-1 簡單輸出整數

原題目: 本題要求實現一個函式,對給定的正整數N,列印從1到N的全部正整數。 函式介面定義: void PrintN ( int N ); 其中N是使用者傳入的引數。該函式必須將從1到N的全部正整數順序打印出來,每個數字佔1行。 裁判測試程式樣例: #include &

PAT基礎程式設計 5-14 整數段 (15分)

5-14 求整數段和 (15分) 給定兩個整數AA和BB,輸出從AA到BB的所有整數以及這些數的和。 輸入格式: 輸入在一行中給出2個整數AA和BB,其中-100<= A<=B<=100 −100≤A≤B≤100,其間以空格分隔。

PTA基礎程式設計題目集6-2多項式值(函式題)

本題要求實現一個函式,計算階數為n,係數為a[0] ... a[n]的多項式f(x)=∑​i=0​n​​(a[i]×x​i​​) 在x點的值。 函式介面定義: double f( int n, double a[], double x ); 其中n是多項式的階數,a[]中儲

PAT : 基礎程式設計題目集_程式設計題答案(7-1 ~ 7-38)(純C編寫)

題目地址 7-1 #include<stdio.h> int main(int argc,char** argv) { int cm; scanf("%d",&cm); float x=cm/0.3048/100; float a=(x

基礎程式設計題目集:6-7 統計某類完全平方數(20 分)

int IsTheNumber(const int N) { int n = sqrt(N); int k = 0, tmp = N; int a[5] = { 0 }; //判斷是否是完全平方數 if (n*n == N) { //先N轉陣列 //判斷有多少位 while (

基礎程式設計題目集 - 7-1 釐米換算英尺英寸(15 分)

題目連結:點選開啟連結 題目大意:略。 解題思路:注意:最後一句話的內涵,意味著 inch/12 是 foot 的小數部分。 AC 程式碼 [cpp]

基礎程式設計題目集-7-4 BCD解密

  BCD數是用一個位元組來表達兩位十進位制的數,每四個位元表示一位。所以如果一個BCD數的十六進位制是0x12,它表達的就是十進位制的12。但是小明沒學過BCD,把所有的BCD數都當作二進位制數轉換成十進位制輸出了。於是BCD的0x12被輸出成了十進位制的18了! 現在,你的程式要讀入這個錯誤