实验3

Posted 1635154773gao-hb

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了实验3相关的知识,希望对你有一定的参考价值。

part1.1

// 一元二次方程求解
// 重复执行, 直到按Ctrl+D或Ctrl+E结束
//  
#include <math.h>
#include <stdio.h>
#include <stdlib.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)) {
        if(a == 0) 
            printf("not quadratic equation.
");
        else {
            delta = b*b - 4*a*c;
        
            if(delta >= 0) {
                x1 = (-b + sqrt(delta)) / (2*a);
                x2 = (-b - sqrt(delta)) / (2*a);
                printf("x1 = %f, x2 = %f
", x1, x2);
            }
            else {
                real = -b/(2*a);
                imag = sqrt(-delta) / (2*a);
                printf("x1 = %f + %fi, x2 = %f - %fi
", real, imag, real, imag);
            }
        }
        
        printf("Enter a, b, c:
");
    }
    system("pause");
    return 0;
} 

技术图片

pary1.2

// 猜数游戏
// 程序运行时自动生成1~100之间的随机数,提示用户猜
// 如果用户猜的数等于随机数,提示用户猜对了,程序结束
// 否则,如果用户猜的数小于随机数,提示用户低了,用户继续猜
// 如果用户猜的数大于随机数,提示用户高了,用户继续猜 
// 程序循环运行直到用户猜对为止

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

int main() {
    int guessNumber; // 存放程序运行时生成的1~100之间的随机整数 
    int ans;     // 存放用户猜的数字 
    
    srand((time(0)));  // 以时间函数作为随机种子 
    guessNumber = 1 + rand()%100;  // 生成1~100之间的随机数 
    
    do {
        printf("your guess number is(1~100): ");
        scanf("%d", &ans);
        if(ans < guessNumber)
            printf("%d is lower than the number.
", ans);
        else if(ans > guessNumber) 
            printf("%d higher then the number.
", ans); 
    }while(ans != guessNumber);
    
    printf("Congratulations. you hit it~
");    
    
    system("pause"); // 在devc中运行时,这一行可以去掉
     
    return 0;
} 

技术图片

part2

/* 
编程找出5个整数的最大数和最小数 
《C语言程序设计教程学习指导》p122实验内容(3) 
*/ 

#include <stdio.h>
#include <stdlib.h>
int main() {
    int number, max, min, n;
    
    n=1;
    printf("输入第%d个数: ", n);
    scanf("%d", &number);
    max = number;
    min = number;
    
    while(n<5) {
        n++;
        printf("输入第%d个数: ", n);
        scanf("%d", &number);    

        if(max<number)
            max = number;
        else if(min>number)
            min = number;
    }
    
    printf("最大数为: %d
", max);
    printf("最小数为: %d
", min);
    
    system("pause");
    
    return 0;
} 

技术图片

part3.1

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

技术图片

part3.2(pass,真不会)

part3.3

#include <stdio.h>
#include <math.h>
#include <stdlib.h>
double formula(int n,int a);
int main() {
    int n,a;
    double s;
    printf("Enter n and a:");
    scanf("%d%d",&n,&a);
    if(n<=0||a<=0) {
        printf("ERROR.
");
    }
    else {
        s = formula(n,a);
        printf("s = %f
",s);
    }
    system("pause");
    return 0;
}
long assist(int x);
double formula(int i,int j) {
    int x;
    double y;
    for(x = 1,y = 0;x<=i;x++) {
        y += x/(j*assist(x));
    }
    return y;
}
long assist(int m) {
    int t;
    long z;
    for(t = 1;t<=m;t++) {
        z += pow(10,(t-1));
    }
    return z;
}

技术图片(有问题)

 

实验总结:本次相较于上次进步了不少,并且能够通过各种方式编写出程序,得到想要的结果。对于函数以及自定义函数,也能灵活运用。但实验中可能还是有部分算法没有弄清导致计算错误,也有可能是错误没找出来,请各位大佬多多指教。

以上是关于实验3的主要内容,如果未能解决你的问题,请参考以下文章

20155201 李卓雯 《网络对抗技术》实验一 逆向及Bof基础

JSP 设计教师与学生不同登陆界面(带验证码)

[NTUSTISC pwn LAB 7]Return to libc实验(puts泄露libc中gadget片段定位)

缓冲区溢出漏洞实验

使用 React 实验性中继片段:缺少属性 '"$fragmentRefs"'

chapter1.高通量序列实验简介:设计与生物信息学分析