实验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; }

 

posted @ 2020-11-16 20:14  健力饱  阅读(71)  评论(0)    收藏  举报