实验3⃣️🌂叁三

一·

#include<stdio.h> #include<math.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; }

二·

#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; }

三·
#include <stdio.h>
#include <math.h>
int main()
{
    int i,j=200,k,p=0;
    for(i=101;i<=j;i++)
    {
        for(k=2;k<=sqrt(i);k++)
        {
            if(i%k==0)
            {
                break;
            }
        }
            if(k>sqrt(i))
           {
               printf("%d\t",i);
               p++;
               
           }
        }
        
    printf("\n");
    printf("101到200以内的素数有%d个",p);
    return 0;
}




四·
#include <stdio.h>
#include<math.h>
int main()
{
    long i;
    int m,k,j;
    double n;
    printf("Enter a numble:");
    while(scanf("%ld",&i)!=0)
    {
    printf("\n");
        j=0;
        n=0;
    while(i!=0)
    {
        m=i%10;
    k=m%2;
    if(k!=0)
    {
        j=j+m*pow(10,n);
        i=i/10;
        n++;
    }
       
    else
        i=i/10;
    }
    printf("%d\n",j);
        printf("Enter a numble:");
    }
    return 0;
}

1.如何取出奇数

我定义了一个变量kk=i%2k=0时即i为奇数时取出这位数字进行后面的运算如果k==0则直接将i/10准备对下一位数判断

2.如何确保构成的新数中,原先的高位仍在高位,原先的低位仍在低位:

我每取出一位符合条件的奇数后,都将其与10n次方相乘,而每取出一位奇数后n的值+1,如此一来便可保证在新数中,原先高位仍在高位,原先低位仍在低位。



五·

#include <stdio.h> #include <math.h> int main() { int n,m; double s,q; printf("Enter n(1~10):"); while(scanf("%d",&n)!=EOF) { if(n<1||n>10) printf("数据输入错误!"); else { s=0; q=1; for(m=1;m<=n;m++) { q=q*m; s=s+(pow(-1,m-1))*(1/q); } printf("n=%d\ts=%lf\n",n,s); printf("Enter n(1~10):"); } } return 0; }

六·

#include <stdio.h> #include <stdlib.h> #include <time.h> int main() { printf("猜猜2020年12月的哪一天是会是你的Lucky Day\n"); printf("开始咯,你有三次机会,猜咯(1~31):"); int a,b,sum; sum=3; srand((unsigned)time(NULL)); a=rand()%31+1; while(1) { sum--; scanf("%d",&b); if(sum==0) { printf("次数用完啦,偷偷告诉你,luck day是%d号\n",a); break; } if(a>b) printf("你猜的日期早了, luck day未到\n再猜(1~31):"); if(a<b) printf("你猜的日期晚了, luck day已经悄悄溜走了\n再猜(1~31):"); if(a==b) { printf("恭喜你的猜对咯,good luck!\n"); break; } } return 0; }

实验总结:

1.在本次实验中学会了如何使用rand()获取一个随机数并且知道可以用rand()%n来规定所取随机数的范围,其范围为0~n-1)

2.明白了如何让程序多次执行的方法,明白了whlie(scanf(“%d”&x))whlie(scanf(“%d”&x)!=0)的区别

3.对于for,whlie,break,continue的具体应用有了进一步的了解

尚存问题:

1.对于do...while的语句还是比较生疏,以后会多加运用

2.对于Mac系统内xcode中ctrlZ,ctrlD,ctrlE的使用存在问题,例如ctrlZ在xcode中无法实现其在windows下的编程软件中所达到的效果,具体的运用还在摸索当中。

 

posted @ 2020-11-16 22:05  WesleyMoob&  阅读(80)  评论(0)    收藏  举报