實驗三 黃厚銘202083450067
阿新 • • 發佈:2020-11-20
實驗1
#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 = %.2f - %.2fi\n\n",real, imag, real, imag); } } printf("Enter a, b, c: "); } return 0; }
實驗2
#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; }
實驗3
#include<stdio.h> #include<math.h> int main(){ int x=1, a=0, j=0; for(int n=101;n<=200;n++){ for(int i=2;i<=sqrt(n);i++){ if(n % i == 0){ x=0; break; } else continue; } if(x==1)j+=1; if(x==1 && (j-1)%5!=0){ printf("%6d",n); a++; } else if(x==1 && (j-1)%5==0 && j!=1){ printf("\n"); printf("%6d",n); a++; } else if(x==1 && (j-1)%5==0 && j==1){ printf("%6d",n); a++; } x=1; } printf("\n"); printf("101~200之間共有%d個素數",a); return 0; }
實驗4
#include <stdio.h> #include <math.h> long long chang(long long i){ long long len=1; if(i<=0) return 0; else{ for(;i/10>0;i/=10) len++; return len; } } int main(){ long long num,len,i,a; printf("Enter a number:"); while(scanf("%lld",&num)!=EOF){ long long j=0; for(len=chang(num);len>=0;len--){ i=pow(10,len); a=num/i; num=num%i; if(a%2!=0) j=j*10+a; } printf("New number is:%d\n",j); printf("\n"); printf("Enter a number:"); } return 0; }
思路:首先計算輸入數字的長度,即求這個數字一共有多少位,利用這位數結合10的指數運算依次把輸入數字每一位上的數字扣出來,並判斷是否是奇數,是就輸出。因為我是從左往右扣數字並輸出的,所以就能直接確保結果是高位仍在高位、低位仍在低位。
下面是我做的一個實驗4半成品,大家幫忙查查錯:)
1 //這是我做的一個實驗4半成品,大家幫忙查查錯:) 2 #include<stdio.h> 3 #include<math.h> 4 long long chang(long long i){ 5 long long len=1; 6 if(i<=0) 7 return 0; 8 else{ 9 for(;i/10>0;i/=10) 10 len++; 11 return len; 12 } 13 } 14 15 int main(){ 16 long long num,n; 17 while(scanf("%lld",&num)!=EOF){ 18 for(n=chang(num);n>=0;n--){ 19 if((num/(long long)pow(10,n-1))%2 != 0) 20 printf("%lld",num/(long long)pow(10,n-1)); 21 num = num - (num/(long long)pow(10,n-1)*(long long)pow(10,n-1)); 22 } 23 printf("\n"); 24 } 25 return 0; 26 }
半成品的執行結果如下
實驗5
#include<stdio.h> int a(int n){ int all; if(n<=0) return -1; else if(n==1){ all = 1; return all; } else{ all = n*a(n-1); return all; } } int main(){ int n,x=1; double sum=0,y; printf("Enter n(1`10):"); while(scanf("%d",&n)!=EOF){ for(int i=1;i<=n;i++){ x=a(i); y=1.0/x; x=1; if(i%2==0) sum = sum + -1 * y; if(i%2!=0) sum = sum + y; } printf("n = %d, s = %lf\n",n,sum); printf("\n"); sum=0; printf("Enter n(1`10):"); } return 0; }
實驗6
#include<stdio.h> #include<stdlib.h> #include<time.h> int main(){ int day,guess,i=3; srand(time(0)); day=rand()%31+1; printf("猜猜2020年12月哪一天會是你的luck day\n"); printf("開始嘍,你有三次機會,猜吧:"); for(;i>=1;i--){ scanf("%d",&guess); if(guess==day){ printf("\n"); printf("Bingo!\n"); i=10; break; } else if(guess>day){ printf("\n"); printf("你猜的日期晚了,luck day悄悄溜到前面啦\n"); if(i!=1) printf("再猜:"); continue; } else{ printf("\n"); printf("你猜的日期早了,luck day還沒到呢\n"); if(i!=1) printf("再猜:"); continue; } } if(i==0){ printf("\n"); printf("次數用完啦,偷偷告訴你:12月,你的luck day是%d號。\n",day); } return 0; }