1. 程式人生 > 實用技巧 >實驗2與實驗3(T-T)

實驗2與實驗3(T-T)

實驗2

實驗任務一

//ex1.cpp
#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;
}

運算子*的優先順序為2,運算子/優先順序為3,先運算*(此為用VS2010敲的程式碼,之後為DEV C++)

實驗任務2

//ex2.cpp
#include<stdio.h> #include<stdlib.h> int main(){ int x=1234; float f=123.456; double m=123.456; char ch='a'; char 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); system("pause"); return 0; }

ex3.cpp

//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("%f,%lf\n",x,y); return 0; }

ex4.cpp

//ex4.cpp
#include<stdio.h>
int main(){
    char x;

    x=getchar();

    if(x>='0'&&x<'9')
        printf("%c是數字字元\n");
    else if(x>='A'&&x<='Z'||x>='a'&&x<='z')
        printf("%c是英文字母\n",x);
    else
        printf("%c是其他字元\n",x);
        return 0;
}

ex5.cpp

//ex5.cpp
#include <stdio.h>
int main(){
    char ans1,ans2;
    
    printf("複習好了沒?(輸入y或Y代表複習了,輸入n或N表示沒複習)"); 
    ans1 = getchar();
    getchar() ;
    
    printf("\n動手敲程式碼了沒?(輸入y或者Y表示敲了,輸入n或N表示木有敲):");
    ans2 = getchar();
    
    if(ans1=='y'||ans1=='Y'&&ans2=='n'||ans2=='N')
       printf("\n羅馬不是一天建成的:)");
    else
       printf("\n羅馬不是一天毀滅的。。。\n") ;
       
       return 0;
}

ex6.cpp

//ex6.cpp
#include<stdio.h>
#include<math.h>
int main(){
    const int x=2;
int sum;
    double n;
    printf("請輸入一個1~10的n:\n");
    scanf("%lf",&n);
    sum=1*(1-pow(x,n+1))/(1-x);

    printf("n=%lf,sum=%d",n,sum);

    return 0;
}

任務六為請教同學所作。

任務七暫時不會。

實驗3

ex1.cpp

//一元二次方程求解
//重複執行,直到按Ctrl+Z結束
//
#include <math.h>
#include <stdio.h>

int main(){
    float a, b, c, x1, x2;
    float delta, real, imag;
    
    printf("Enter a, b, c:");
    
    while(scanf("%f%f%f", &a, &b, &c)!=EOF){
        if(a==0)
        printf("not quadratic equation.\n\n");
        else {
            delta = b*b-4*a*c;
            
            if(delta >= 0){
                x1 = (-b + sqrt(delta))/(2*a);
                x2 = (-b - sqrt(delta))/(2*a);
                printf("x1 = %.2f,x2 = %.2f\n\n", x1, x2);
            
                }
            else {
                real = -b/(2*a);
                imag = sqrt(-delta)/(2*a);
                printf("x1 = %.2f + %.2fi, x2 = %.2fi\n\n",real,imag,real,imag);
                
            }
                }
                printf("Enter a, b, c:");
                
    } 
           return 0;
       }

ex2,cpp

//生成N個0~9之間的隨機整數,並列印輸出
#include <stdio.h>
#include <stdlib.h>
#include <time.h>
#define N 5

int main(){
    int x,n;
    
    srand(time(0));
    n = 0;
    do{
        n++;
        x = rand()%10;
        printf("%3d",x);
    }while(n<N);
    
    printf("\n");
    
    return 0;
}

ex3.cpp

#include <stdio.h>
#include <stdlib.h>
#include <math.h>
int main(){
    int m,n;
    int i=0;
    
    for(m=101;m<=200;m++)
    {
    for(n=2;n++;n<=m)
    {
        if(m%n==0)break;}
        
    
    if(n>=m)
        {
        printf("%5d",m);
        i++;
        if(i%5==0)printf("\n");
    }
 

}
printf("\n");
printf(" 101~200之間有%d個素數\n",i);
return 0;
}

ex4.cpp

演算法思路:

輸入整型數字除10取出,取出後與2取餘判斷是否為奇數。

排序按照先後順序乘10的幾次方,第n次取得的數乘n-1次方,以此類推。

#include<stdio.h>
#include<math.h>
int main ()
{
    long x,y,z;
    printf("Enter a number:");
    while(scanf("%ld",&x)!=EOF)
{
    long i=0,z=0;
    while(x>0)
    {
    y=x%10;
    if(y%2!=0)
    {
        z=z+y*pow(10,i);
        i++;
    }
    x=x/10;
    
    }
    
printf("new number is:%ld\n",z);
printf("\nEnter a number:");
}
return 0;
}

ex5.cpp

#include<stdio.h>
#include<math.h>
int main(){
    int m,n;
    float x;
    printf("Enter n(1~10):");
    while (scanf("%d",&n)!=EOF){
        float x=0,y=0;
        for(m=1;m<=n;m++){
            y=y*m;
            x=x+pow(-1,m-1)*(1/y);
        }
        printf("n=%d,x=%f\n",n,x);
        printf("Enter n(1~10):");
    }
    return 0;
}

ex6.cpp

#include<stdio.h>
#include<stdlib.h>
#include<time.h>
int main(){
    int m,n,x=1,y=0;
    int ret=0;
    srand(time(0));
    n=rand()%30+1;
    
    printf("猜猜2020年12月哪一天會是your luck day!\n");
    printf("開始嘍,你有三次機會,來吧(1~31):");
    scanf("%d",&m);
    while(x<=3){
        if(m==n){
            printf("你猜的日期是正確的!\n");
            ret=1;
            break;
        }else if(m>n){
            printf("你猜的日期晚了,luck day悄悄溜到前面啦!\n");
            printf("再猜!");
            scanf("%d",&m);
            x++; 
        }else{
            printf("你猜的日期早了,luck day還沒到呢!\n");
            
            printf("再猜(1~31):");
            scanf("%d",&m);
            x++;
        }
    }
    if(ret=0)printf("次數用完了,偷偷告訴你:12月,你的luck day是:%d",n);
  return 0;
}