Deepin install dotnet-sdk-5.0
阿新 • • 發佈:2020-11-13
1.實驗任務1
// 一元二次方程求解 // 重複執行, 直到按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 = %.2f - %.2fi\n\n", real, imag, real, imag); } } printf("Enter a, b, c: "); }return 0; }
2.實驗任務2
// 生成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;// 生成一個0~9之間的隨機整數 printf("%3d", x); } while(n<N); printf("\n"); return 0; }
3.實驗任務3
#include <stdio.h> #include <stdlib.h> int main() { int i, j, n=0; for (i = 101; i <= 200;i++) { for (j = 2; j * j <= i;j++) if(i%j==0)break; if(j*j>i) { printf("%5d", i); n++; if(n%5==0)printf("\n"); } } printf("\n100~200之間一共有%d個素數\n", n); return EXIT_SUCCESS; }
4.實驗任務4
#include<stdio.h> #intclude<stdlib.h> int main() { long s,t=0; int i=1, j; printf("Enter a number:"); while(scanf("%ld",&s)!=EOF) { i = 1, t = 0; while(s) { j = s % 10; s = s / 10; if(j%2) { t += j * i; i *= 10; } } printf("new number is:%ld\n\n", t); printf("Enter a number:"); } return EXIT_SUCCESS; }
思路:我的想法是逐一判斷每位上的數是否是奇數,然後再按輸出時所處的位數放入一新數裡
- 對s取10的餘數,可以得到最後一位的數字,再判斷是否是奇數,再除以10減去最後一位
- 輸出的數是由奇數構成的新的數,將上面所得的奇數乘以所在位數(即乘以1,10,100....)可以得到新數
#include<stdio.h> #include<stdlib.h> #include<string.h> #define MAXN 5000 int main() { char str[MAXN]; int i,len,n; printf("Enter a number:"); while((scanf("%s",str))!=EOF) { len = strlen(str); printf("new number is:"); for (i = 0; i < len;i++) { n = str[i] - '0'; if(n%2) printf("%d", n); } printf("\n\n"); printf("Enter a number:"); }return EXIT_SUCCESS; }
注:如果資料超過長整形的範圍,又要得到結果的話,只能用陣列來模擬,程式碼如上。
5.實驗任務5
#include<stdio.h> #include<stdlib.h> int main() { double s, i, n, x,sgn; printf("Enter n(1~10):"); while(scanf("%lf", &n)!=EOF) { s = 0, x = 1; for (i = 1,sgn=1; i <=n;i++,sgn*=-1) { x *= i; s += (1 / x)*sgn; } printf("n=%d,s=%lf\n\n",n,s); printf("Enter n(1~10):"); }return EXIT_SUCCESS; }
6.實驗任務6
#include<stdio.h> #include<stdlib.h> #include<time.h> int main() { int random,i,j,n=3; srand(time(0)); random = rand() % 31 + 1; printf("猜猜2020年12月哪一天會是你的lucky day\n\n"); printf("開始嘍,你有三次機會,猜吧(1~31):"); for (i = 0; i < n;i++) { if(i)printf("再猜(1~31):"); scanf("%d", &j); if(random==j) { printf("猜對啦!\n"); return EXIT_SUCCESS; } else if(j<random) printf("你猜的日期早了,luck day還沒到呢\n\n"); else printf("你猜的日期晚了,luck day悄悄溜到前面啦\n\n"); } printf("次數用完啦,偷偷告訴你:12月,你的lucky day是%d號\n", random); return EXIT_SUCCESS; }