C語言部落格作業--函數

來源:互聯網
上載者:User

標籤:signed   重複   turn   整型   字元型   排名   忘記   print   unsigned   

一、PTA實驗作業題目一:6-3 使用函數判斷完全平方數
  1. 本題PTA提交列表

  2. 設計思路

3.本題調試過程碰到問題及解決辦法

這題提交後題目告訴我n=0時候答案錯誤,然後才發現0也是完全平方數,所以就把i的初值改成了0

題目二:6-9 使用函數驗證哥德巴哈猜想
  1. 本題PTA提交列表

  2. 設計思路

  • 1.定義a,b,j=2
  • 2.若j為素數,a=j,b=n-j,若b為素數,輸出並結束迴圈
  • 3.i自增
  • 4.重複2步驟,直到j>n

3.本題調試過程碰到問題及解決辦法
這題剛開始忘記考慮p=1了;後來調試時發現怎麼都不會進入迴圈,仔細看了一下代碼,才發現出了問題,所以單獨把1拿出來進行判斷

題目三:7-1 求組合數
  1. 本題PTA提交列表

  2. 設計思路
  • 1.聲明一個浮點型函數fact(int n)
  • 2.定義整型變數m,n,浮點型變數result
  • 3.輸入m,n
  • 4.result=fact(n)/(fact(m)*fact(n-m))
  • 5.輸出result
  • 6.定義函數,定義整型變數i=2,浮點型變數x=1.0
  • 7.若n<=1,返回1
  • 8.x=x*i,i++
  • 9.重複步驟8,直到i<=n,返回x

3.本題調試過程碰到問題及解決辦法
我先是將n直接拿來進行運算,,並且用i--,但題目一直提示m=n/2時是錯的,後來又引入一個浮點型x,用遞增的方法來做,才正確,但我現在都不知道哪裡錯了
附上錯誤的代碼
···
double fact(int n)
{
int i=0;
if(n==0)return 1;
for(i=n-1;i>0;i--)
{
n=n*i;
}
return n;
}
···

二、同學代碼結對互評

1.同學互評照片。

2.My Code、互評同學代碼
My Code

#include<math.h>int narcissistic( int number ){    int result=0,N=0,x,sum=0,j,y;    y=number;    do    {        j=y/10;        y=y/10;        N++;    }while(j!=0);    y=number;    for(int i=1;i<=N;i++)    {        x=y%10;        sum=sum+pow(x,N);        y=y/10;    }    if(sum==number)return 1;    return result;}#include<math.h>void PrintN( int m, int n ){    int i,j,k,N,sum,x,y,z;    for(i=m+1;i<=n-1;i++)    {            y=i;            N=0;            sum=0;    do    {        j=y/10;        y=y/10;        N++;    }while(j!=0);        y=i;    for(k=1;k<=N;k++)    {        x=y%10;        sum=sum+pow(x,N);        y=y/10;    }    if(sum==i)printf("%d\n",i);    }}

鐘文傑的代碼

int narcissistic( int number )//定義函數 {    int n,a,d,cnt=0,sum=0;//定義四個整形變數,cnt用來計算有幾位元,sum用來存放每個數的cnt次方的和。     for(n=number;n>0;n/=10){//計算cnt的值         cnt++;    }    for(a=number;a>0;a/=10){//計算sum的值         d=a%10;        sum=sum+pow(d,cnt);    }    if(number==sum){//判斷是否為水仙花數         return 1;    }    else{        return 0;    } }  void PrintN( int m, int n )//定義第二個函數  {    int i;//定義一個變數i     for(i=m+1;i<n;i++){//做迴圈讓它輸出這個範圍內的水仙花數         if( narcissistic(i) ){//調用上一個函數             printf("%d",i);            printf("\n");        }     } }

3.我和同學代碼不同在哪裡?有哪些各自優勢?你更喜歡哪種代碼風格?如果同學代碼有錯的也請幫忙指出來哪裡出問題。
首先鐘文傑的代碼比我精簡,並且他注釋了,我當時做的時候忘了注釋現在自己都看不懂了,而且他巧妙地調用了上一個函數,非常奇特,這樣代碼量就小了很多,所以我更喜歡他的代碼。

三、本周題目集的PTA最後排名。

四、本周學習總結

1.你學會了什嗎?

1.1 C語言哪些資料類型?
短整型short 整型int 長整型long 單精確度型float 雙精確度型double 字元型char 無符號整型unsigned 無符號短整型unsigned short 無符號長整型unsigned long

1.2 字元型資料需要注意地方?
‘a‘和‘A‘是不同的字元型常量,‘0‘和0是不同類型的常量,前者是字元型常量後者是整型常量

1.3 自增自減運算子?
n++和++n都相當於n=n+1,但n++是先表達n,再執行n=n+1,而++n是先執行n=n+1,再表達n
同理n--和--n也是一樣

1.4 運算子優先順序?
從低到高:(,) (= += -= = /= %=) (?:) (||) (&&) (== !=) (< <= > >=) (+ -) ( / %) (++ -- + - *) (!)

1.5 C語言哪些運算式?課堂派哪裡做錯,做錯的請在這裡分析原因?
算術運算式:例如:x+5y,算術運算的運算式
關聯運算式:x>=5,x<6,x==8,大小關係判斷的運算式
邏輯運算式:ans==’y’ || ans==’Y’,與、或、非三種邏輯運算的運算式
賦值運算式:x=6+y,進行變數賦值的運算式
條件運算式:x>y?1:0,如果x>y則取1,否則取0
逗號運算式:x+3,y
5,z-3,有逗號運算子組成的運算式
8>6>3那時候沒預習到,現在知道了8>6為真,運算式值為1然後1>3為假,所以運算式值為0

2.本周的內容,你還不會什嗎?
對於位元運算的概念還是很模糊,不知道該怎麼用
比如5&6位多少5|6為多少5^6為多少

3.迴圈結構考試總結(全部同學都要寫)
7-4 小於m的最大的10個素數
錯誤碼

    int m,i,j,x,flag=1;    scanf("%d",&m);    for(i=m-1;i>50;i--)    {        for(j=2;j<m/2;j++)        {            x=i%j;            if(x==0)goto out;        }        printf("%6d",i);        if(flag==10)break;        flag++;        out:continue;    }    if(flag==1)    printf("No primce!");    return 0;

修正代碼

int m,i,j,flag=0,count;    scanf("%d",&m);    for(i=m-1;i>1;i--)    {        count=0;        for(j=i-1;j>=2;j--)        {            if(i%j==0)            {                count=1;                break;            }        }        if(count==0)        {        printf("%6d",i);        flag++;        }                if(flag==10)break;        }    return 0;

還不是很滿意,感覺題目要想很久,思路不在點上,而且還有一題現在還弄不清楚

C語言部落格作業--函數

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.