实验三

实验一

#include <stdio.h>
#include <stdlib.h>
#include <time.h>
#define N 5

int main() {
    int x, n; 
    
    srand(time(0));  
    
    for(n=1; n<=N; n++) {
        x = rand() % 100;  
        printf("%3d", x);
    }
    
    printf("\n");
    
    return 0;
} 

 

 

实验二

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

int main(){
    int x, n, a;
    srand(time(0));
    x = rand() % 31 + 1;
    n = 0;
    printf("猜猜2021年5月哪一天是你的luck day?\n开始喽,你有三次机会,猜吧(1~31):");
    while(n<3){
        scanf("%d", &a);
        
        if (a==x)
        {
        printf("猜对了!");
        goto out;
        }
        else if (a<x)
         {
             if (n<2){
                 printf("\n");
                 printf("你猜的日期早了,luck day在后头。\n再猜:");
             }
                 
             else{
                 printf("\n");
                 printf("你猜的日期早了,luck day在后头。");
             }
                 
         }
        else
         {
             if (n<2){
                printf("\n");
                printf("你猜的日期晚了,luck day在前头。\n再猜:");
             }
                
            else{printf("\n");
                printf("你猜的日期晚了,luck day在前头。");
            }
                
         }
        n++ ; 
            } 
        if (n<2)
        printf("\n");
        else
        printf("\n");
        printf("次数用完咯,偷偷告诉你:五月,你的幸运日是%d号", x);    
    out:
    return 0;
}

 

实验三

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

 

 

实验四

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

void solve(double a, double b, double c);

int main() {
    double a, b, c;
    
    printf("Enter a, b, c: ");
    while(scanf("%lf%lf%lf", &a, &b, &c) != EOF) {
        solve(a, b, c);  
        printf("Enter a, b, c: ");
    }
    
    return 0;
}

void solve(double a, double b, double c) {
    double x1, x2;
    double delta, real, imag;
    
    if(a == 0) 
        printf("not quadratic equation.\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", x1, x2);
        }
        else {
            real = -b/(2*a);
            imag = sqrt(-delta) / (2*a);
            printf("x1 = %.2f + %.2fi, x2 = %.2f - %.2fi\n", real, imag, real, imag);
        }
    }    
}

否,solve函数的返回值是两个根,不适用于主函数

 

 

实验五

#include <stdio.h>
double fun(int n); 
 
int main() {
    int n;
    double s;
    
    printf("Enter n(1~10): ");
    while(scanf("%d", &n) != EOF) {
        s = fun(n);  
        printf("n = %d, s= %f\n\n", n, s);
        printf("Enter n(1~10): ");
    }
    
    return 0;
}


double fun(int n) {
double s=1,x=1;
    int i;
    if(n==1)
    return 1;
    else{
    for(i=2;i<=n;i++){
        x=-x*1/i;
        s=s+x;
        }
    return s;    
        
    }
}

 

实验六

#include <stdio.h>
#include <math.h>
int isPrime(int x);
int main()
{
    int i,m,n;
    i=101,m=0;
    for(;i<=200;i++)
    {
        if(isPrime(i))
        {
            printf("%d ",i);
            m++;
            n++;
            
            if(n==5)
            {
                printf("\n");
                n=0;    
            }    
        }
        
    }
    printf("\n100~200之间的素数为:%d\n",m);
    
    return 0;
}
int isPrime(int x)
{
    int i=0,n=0;
    n=sqrt(x);

    for(i=2;i<=n;i++)
    {
        if(x%i==0)
        {
            return 0;    
        }
        
    }
        return 1;

 

实验七

改变了一个简单的第十行停止下移

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

void printCharMan(int line, int col);  // 函数声明 
void printSpaces(int n); // 函数声明 

int main() {
    int line, col;
    
    for(line=5, col=5; col<=60; col++,line++) {
        printCharMan(line, col);
        Sleep(50);  // 暂停50ms 
        system("cls");  // 清除屏幕 
        if (line >10){
        line--;
        }
    }
}

// 打印n个空格 
void printSpaces(int n){
    int i;
    
    for(i=1; i<=n; i++)
        printf(" ");
}

// 在第line行第col列打印一个字符小人 
void printCharMan(int line, int col) {
    int i, j;
    
    // 打印line-1行空行
    for(i=1; i<=line-1; i++)
        printf("\n");
    
    // 打印col-1个空格
    printSpaces(col-1);
    
    // 在第line行、第col列打印字符小人的头 
    printf(" O \n");
    
    // 打印col-1个空格
    printSpaces(col-1);
    
    // 在第line行、第col列打印字符小人的身体 
    printf("<H>\n");
    
    // 打印col-1个空格
    printSpaces(col-1);
    
    // 在第line行、第col列打印字符小人的腿 
    printf("I I\n");
}

 

实验总结

1.学到了如何判断素数

2.对于循环语句和条件语句有了更多理解

3.本来想对实验七实现一个到第十行反弹向上,才疏学浅,无法实现。

posted @ 2021-04-15 15:00  llqqll  阅读(65)  评论(1编辑  收藏  举报