实验3 C语言分支语句和循环语句编程应用

1.实验任务1

#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.实验任务2

#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.实验任务3

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

4.实验任务4

以a=s%10;(a%2==1)取奇数  

以t=0;t=a*pow(10,n-1)+t实现高位与低位问题

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

5.实验任务5

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

6.实验任务6

 

#include<stdio.h>
#include<stdlib.h>
#include<time.h>

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

posted @ 2020-11-14 23:58  sensenzd  阅读(153)  评论(0编辑  收藏  举报