实验3
任务1
#define _CRT_SECURE_NO_WARNINGS #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
#define _CRT_SECURE_NO_WARNINGS #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
#define _CRT_SECURE_NO_WARNINGS #include<stdio.h> #include<stdlib.h> #include<math.h> int main() { int n=101, i, m,c=0; for (; n < +200; n++) { m = sqrt(n); for (i = 2; i <= m; i++) if (n%i == 0 )break; if (i > m) { printf("%d\n", n); c++; } } printf("共有%d个素数",c); return 0; }

用循环逐一判断100~200是否为素数:)
任务4
#define _CRT_SECURE_NO_WARNINGS
#include<stdio.h>
#include<math.h>
#include<stdlib.h>
int main() {
signed long s,k=1;
do {
printf("Enter a number:");
scanf("%ld", &s);
int k, lg, r;
for (lg = 32; lg >= 0; lg--)
{
k = pow(10, lg);
r = s / k;
if (r != 0 && r % 2 == 1)
printf("%d", r);
s = s % k;
//:)
}
if (lg = 1)
printf("\n");
} while (k!=0);
return 0;
}

算法思路:用作商的方法从高位到低位逐一提取,判断,然后换行。
任务5
#define _CRT_SECURE_NO_WARNINGS
#include<stdio.h>
#include<stdlib.h>
int main() {
int i,a=1,f=1;
float n,s=0,k=1;
do {
printf("enter a number(1~10):");
scanf("%f", &n);
for (i = 1; i <= n; i++) {
if (n < 0 || n>10) {
printf("invalid input");
}
do {
f *= a;
a++;
} while (a <= i);
if (i % 2 == 1)
s += k / f;
else
s -= k / f;
}
printf("s=%f\n", s);
} while (a != 0);
return 0;
}

任务6
#define _CRT_SECURE_NO_WARNINGS #include<stdio.h> #include<stdlib.h> #include<time.h> int main() { srand(time(0)); int x,d,i,r=0; x = rand() % 32; printf("猜猜2020年12月哪一天会是你的lucky day\n开始喽,你有三次机会:"); scanf("%d", &d); for (i = 1; i <= 2; i++) { if (d > 31 || d < 1) { printf("不合法输入,就这?"); r++; break; } if (d > x) { printf("猜得晚了,lucky day过了,再猜:"); scanf("%d", &d); } else if (d < x) { printf("猜早了,luckyday还没到,再猜:"); scanf("%d", &d); } else { printf("恭喜,猜对了!"); r++; break; } } if (r==0) printf("次数用完了,你的luckyday是12月%d号",x);
//:) return 0; }

浙公网安备 33010602011771号