实验三

//一元二次方程求解
#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;
}

 

 

// 生成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;
}

//输入101-200之间素数
#include <stdio.h>
#include <math.h>
int main(){
    int i,m,n,k;
    for(n=101;n<=200;n++)
    {m=sqrt(n);
       for(i=2;i<=m;i++)
         if(n%i==0)break;
         if(i>m){
         printf("%d\n",n);
        k++;
         }
         }
         printf("素数一共有%d个\n",k);
         return 0;
}

 

 

#include <stdio.h>
int main(){
    int s,i,n,t;
    printf("Enter a number:");
    while(scanf("%d",&s)!=EOF){
        i=0;
        n=1;
        while(s!=0){
            t=s%10;
            if(t%2!=0){
            i=t*n+i;
            n=n*10;
        }
            s=s/10;
        }
            printf("new number is:%d\n",i);
            printf("Enter a number:")    ;
    }

    return 0;
}

任务4的2个关键点:

1.通过%10,逐个把每个数取出来,然后判断奇偶,来选出需要的数字。

2.保持高位,每次取出所需数后*n保持原来所在的高位,且每次操作后,也让n及时进位,来保持下一次所取数更高位的需要。

 

 

//shulei
#include <stdio.h>
#include <math.h>

int main()
{
    int n, i, factorial = 1;
    double s = 0, sign = 1.00000;
    
    printf("enter n(1~10):");
    
    while(scanf("%d",&n) != EOF)
    {
    
        for(i=1;i<=n;i++)
        {
            factorial = factorial * i;
            sign = pow(-1,i+1);
            s = s + sign/factorial;
            continue;
        }
        
        printf("n = %d  s = %f\n", n, s);
        
        s = 0;
        factorial = 1;
        sign = 1.00000;
        
        printf("enter n(1~10):");
    }
      return 0;
} 

 

 

 

#include<stdio.h>
#include<stdlib.h>
#include<time.h>
int main(){
    int a,x,n;    
    srand(time(0));
    x=rand()%31+1;
    printf("猜猜2020年12月哪一天会是你的luck day\n");
    printf("开始喽,你有三次机会,猜吧(1~31):");
    scanf("%d",&a);
    for(n=1;n<=3;n++){
        if(n!=3){
        if(a>x){
        printf("\n你猜的日期晚了,luck day悄悄溜到前面啦\n");
        printf("再猜(1~31):");                
        }
        if(a<x){
        printf("\n你猜的日期早了,luck day还没到呢\n");
        printf("再猜(1~31):");                
        }
        scanf("%d",&a);
        
        }        
        if(a==x)
        break;
        if((n==3)&&(a!=x))
        printf("\n\n次数用完啦。偷偷告诉你:12月,你的luck day是%d号",x);        
    }
    return 0;
}

 实验的一点感悟:

1.循环的嵌套有时弄得挺乱,还是需要在纸上将步骤规划清楚,弄清顺序。

2.

posted @ 2020-11-18 16:36  张白枫  阅读(55)  评论(2编辑  收藏  举报