实验三

 

 

实验1

 

// 生成N个0~99之间的随机整数,并打印输出 
#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;  // 生成一个0~99之间的随机整数
        printf("%3d", x);
    }
    
    printf("\n");
    
    return 0;
} 

 

 

思考:line13中100改成30。

 

实验2

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

int main() {
    int x, n,m; 
    
    srand(time(0));   
    
     printf("猜猜2021年5月的哪一天是你的幸运日!\n");
     printf("开始喽,你有三次机会,猜吧。(1~31):");
    
     x = rand() % 30; 
     
    for(n=1; n<=3; ) 
    {
        scanf("%d", &m );
        if (m == x)
        {
            printf("芜湖~猜对了!!\n");
            break;
        }
        else if (m  > x)    
        {
            printf("幸运日在前面。\n");
        }
        else
        {
            printf("幸运日在后面。\n");
        }
        n++;
        if (n > 3)
            break;
        printf("再试一次~(1~31):");
    }
    if (n > 3)
    {
        printf("可惜可惜,机会耗尽了。\n");
        printf("其实幸运日在%d号啦", x);
    } 
        
    
    printf("\n");
    
    return 0;
} 

 

 

实验3

 

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

 

 

 

实验4

 

// 一元二次方程求解(函数实现方式)
// 重复执行, 直到按下Ctrl+Z结束 

#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;
}

// 函数定义
// 功能:求解一元二次方程,打印输出结果
// 形式参数:a,b,c为一元二次方程系数 
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);
        }
    }    
}

 

 

否。如果一元二次方程有两个根则不行

 

实验5

#include <stdio.h>
#include <math.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) {
    int m,i,j;
    double s;
    s=0;
    for(i=1;i<=n;i++){
        m=1;
        for(j=1;j<=i;j++){
            m=m*j;
        }
        s=s+pow(-1,i-1)*(1.0/m);        
    }
    return s;
}

 

 

 

实验6

#include <stdio.h>
#include<math.h>
int isPrime(int x);
int main (){
    int n,t;
    t=0;
    for(n=100;n<=200;n++){
        if(isPrime(n)){
            t++;
            printf("%4d",n);
            if(t%5==0){
                printf("\n");
            }                        
        }
    }
    printf("\n\n");
    printf("100~200之间素数个数为:%d",t);    
}

int isPrime(int x){
    int k;
    for(k=2;k<=sqrt(x);k++){
        if(x%k==0){
            return 0;
        }
    }
    return 1;    
}

 

 实验7

#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++) {
        printCharMan(line, col);
        Sleep(50);  // 暂停50ms 
        system("cls");  // 清除屏幕 
    }
}

// 打印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");
}
#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");  // 清除屏幕 
    }
}

// 打印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");
}

实验总结

for循环的使用和函数的定义,调用以及一元二次方程的解法

还需查缺补漏,巩固

posted @ 2021-04-15 22:53  vikki921  阅读(39)  评论(2编辑  收藏  举报