LDu

导航

 

ex1.cpp

//一元二次方程 求解
//重复执行,直到按下Ctrl+Z
//
#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;
} 

 

ex2.cpp

//生成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("%5d", x); 
    } while(n<N);
    
    printf("\n");
    
    return 0;
} 

 

ex3.cpp

//输出101~200之间的素数
#include<stdio.h>
int main()
{
    int x, n=0, y;
    int z=5;
    for(x=101;x<200;x++)
    {
    
        int    count=1;
            for(y=2;y<x;y++)
            {
            
                if(x%y==0)
                {
                    count=0;
                    break;
                }
            }
        if(count==1)
        {
            n++;
            printf("%5d",x);
            if(n%z==0) printf("\n");
        }
    }
    printf("\n101~200之间共有%d个素数.",n);
    
    return 0;
} 

 

ex4.cpp

#include<stdio.h>
int main()
{
    int  m=0;
    unsigned long long int n=0,a,b;
    int sum=0;
    printf("Enter a number:");
    while(scanf("%llu",&a) != EOF){
            while(a>0)
            {
                if(a<10) {
                    b=a;
                    a=0;
                    goto in;}
                b=a%10;
                a/=10;
            in: 
                if(b%2 !=0)
                    sum = sum*10+b;
                    
            }while(sum !=0){
                m=sum%10;
                n=n*10+m;
                sum=sum/10;
            }printf("new number is :%llu",n);
             printf("\nEnter a number:");
             n=0;
             sum=0;
             m=0;
             
            }
        
    
    return 0;
}

实验结论:运用取余算法依次取出各位数上的数字进行奇偶计较,将所有奇数取出后会发现数字结果与预期的颠倒,最后可以运用反位数输出算法得出预期结果。

 

ex5.cpp

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

ex6.cpp

//随机取1~31的整数进行日期猜测
#include<stdio.h>
#include<stdlib.h>
#include<time.h>
int main()
{
    srand(time(0));
    int t = rand()%31;
    int   n;
    int m=1;
    printf("猜猜2020年12月哪一天会是你的luck day\n\n");
    printf("开始喽,你有三次机会,猜吧(1~31):");
    do{
        scanf("%d",&n);
        if(n==t){
            printf("\n\n你猜对啦,12月%d号是你的luck day", n);
            break;
        }
        else if(n<t){
            printf("\n\n你猜的日期早了,luck day还没到呢");
                if(m<3)    printf("\n\n再猜(1~31):");
        }
        else{
             printf("\n\n你猜的日期晚了,luck day悄悄留到前面啦");
                 if(m<3)    printf("\n\n再猜(1~31):");
        }
        m++;
    } while(m<=3);
        if(m==4)    printf("\n\n次数用完啦,偷偷告诉你:12月,你的luck day是%d号",t);
            return 0;
 } 

实验总结:从零基础学习以来,虽然和身边的人差距还很大,但能自我感觉到有好多收获,学会了从头写出一道算法(虽然算法逻辑很啰嗦很low TUT),但我相信熟能生巧,希望今后的学习能像c程序一样,编译报错能及时改正,运行成功能有结果!!!QAQ

 

posted on 2020-11-18 23:48  LDu  阅读(125)  评论(2)    收藏  举报