1. 程式人生 > 實用技巧 >題解 P6587 【超超的序列 加強】

題解 P6587 【超超的序列 加強】

實驗任務1

#include <stdio.h>
#include <stdlib.h>
int main() {
    int a=5, b=7, c=100, d, e, f;

    d = a/b*c;
    e = a*c/b;
    f = c/b*a;
    
    printf("d=%d, e=%d, f=%d\n",d,e,f);
    system("pause");

    return 0;
}

d=a/b*c=5/7*100=0*100=0

e=a*c/b=5*100/7=500/7=71

f=c/b*a=100/7*5=14*5=70

變數d, e, f的計算結果不同的原因是d,e,f均為int型整型,且計算順序不同。

實驗任務2

// ex2.cpp

#include <stdio.h>
int main() {
    int x=1234;
    float f=123.456;
    double m=123.456;
    char ch='a';
    char a[]="Hello, world!"; // 定義一個數組a,陣列中存放字串常量hello,world!
    int y=3, z=4; 
    
    printf("%d %d\n", y, z);
    printf("y=%d, z=%d\n", y,z);
    printf("%8d,%2d\n
", x,x); printf("%f, %8f, %8.1f, %0.2f, %.2e\n",f,f,f,f,f); printf("%lf\n",m); printf("%3c\n", ch); printf("%s\n%15s\n%10.5s\n%2.5s\n%.3s\n",a,a,a,a,a); return 0; }

格式字元

%d 按十進位制整數輸出

%f 按浮點數輸出

%e 按指數形式輸出

%c 按字元輸出

%s 按字串輸出

修飾符

m 輸出資料域寬,資料長度<m,左補空格;否則按實際輸出

.n 對實數, 指定小數點後位數(四捨五入),對字串,指定實際輸出位數

l 在d、o、x、u前,指定輸出精度為long型;在e、f、g前

,指定輸出精度為double型

實驗任務3

// ex3.cpp
#include <stdio.h>
int main() 
{
    double x,y;
    char c1,c2,c3;
    int a1,a2,a3;
    
    scanf("%d %d %d",&a1,&a2,&a3);
    printf("%d,%d,%d\n",a1,a2,a3);
    scanf("%c%c%c",&c1,&c2,&c3);
    printf("%c%c%c\n",c1,c2,c3);
    scanf("%lf,%lf",&x,&y);
    printf("%lf,%lf\n",x,y);
    
    return 0;
} 

實驗任務4

// ex4.cpp
// 判斷字元型別 
#include <stdio.h>
int main() {
    char x;
    
    x = getchar();
    
    if(x>=48&&x<=57) // 判斷x是數字字元表示式 
        printf("%c是數字字元\n", x);
    else if(x>=65&&x<=90||x>=97&&x<=122) // 判斷x是大寫或小寫英文字母的表示式 
        printf("%c是英文字母\n", x);
    else
        printf("%c是其它字元\n", x);
    
    
    return 0;
} 

實驗任務5

// ex5.cpp
#include <stdio.h>
int main() {
    char ans1, ans2;
    
    printf("複習了沒? (輸入y或Y表示複習了,輸入n或N表示沒複習) :  ");
    ans1 = getchar();  // 從鍵盤輸入一個字元,賦值給ans1
    
    getchar(); // 思考這裡為什麼要加這一行 
    
    printf("\n動手敲程式碼了沒? (輸入y或Y表示敲了,輸入n或N表示木有敲) :  ");
    ans2 = getchar();
    
    if((ans1==89||ans1==121)&&(ans2==89||ans2==121))
        printf("\n羅馬不是一天建成的:)\n");    
    else
        printf("\n羅馬不是一天毀滅的。。。\n");

    return 0;
} 

實驗任務6

#include <stdio.h> 
#include <math.h> 
int main()
{
    int n,sum;
    scanf("%d",&n);
    if(n<1||n>10)
    printf("invalid input");
    else
    {
    sum=pow(2,n+1)-1;
    printf("n=%d時,sum=%d",n,sum);
    }
return 0;
}

實驗總結

學習了:

資料型別與運算子優先順序和結合性對計算結果的影響

輸入和輸出的使用方法

c語言常見輸出格式字元和修飾符的意義和用法

條件語句的使用