实验三

#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-%.2f\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;
     printf("%3d",x);
      }while(n<N);
      
      printf("\n");
      return 0;
      
       
    } 

 

 

scrand和燃灯()配合使用产生伪随机数序列。

scrand(time(0))

rand 检索生成的伪随机数

从scrand(seed)中指定的seed开始  返回一个【seed,RAND_MAX(0x7fff))间的随机整数。其中参数seed是rand()的种子,用来初始化rand()的起始值。

可以认为rand()在每次被调用的时候,它会查看:
1) 如果用户在此之前调用过srand(seed),给seed指定了一个值,那么它会自动调用srand(seed)一次来初始化它的起始值。
2) 如果用户在此之前没有调用过srand(seed),它会自动调用srand(1)一次。

 

 实验三:

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

 

 

 

 

 实验4:

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

}

 

 

(1)此数对10取余,得到最末位,将末位对2取余,若为1,则为奇数,

(2)第一次取乘1,第二次乘10,以此类推。

 

实验5:

#include<stdio.h>
#include<math.h>
int main(){
    int a,b,n;
    double s,i;
    a=1;
    b=1;
    s=0;
    i=1;
    printf("Enter n(0~10):");
    while(scanf("%d",&n)!=EOF){
        for(;a<=n;a++){
        b=(-1)*b*a;
        s=s-i/b;
            }
    printf("n=%d,s=%lf\n\n",n,s);
    printf("Enter n(0~10):");
    }
    
    
    return 0;
    
    
}

 

 

 

 

 

实验六

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

 

 

 

 

 

 

posted @ 2020-11-15 03:06  孟豆  阅读(93)  评论(1编辑  收藏  举报