实验3作业

点点圈 提交于 2019-12-04 16:30:48

Part 1.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.\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 = %f, x2 = %f\n", x1, x2);
            }
            else {
                real = -b/(2*a);
                imag = sqrt(-delta) / (2*a);
                printf("x1 = %f + %fi, x2 = %f - %fi\n", real, imag, real, imag);
            }
        }
        
        printf("Enter a, b, c:\n");
    }
    system("pause");
    return 0;
} 

        

 Part1.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.\n", ans);
        else if(ans > guessNumber) 
            printf("%d higher then the number.\n", ans); 
    }while(ans != guessNumber);
    
    printf("Congratulations. you hit it~\n");    
    
    system("pause"); // 在devc中运行时,这一行可以去掉
     
    return 0;
} 

    

Part2

#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\n", max);
    printf("最小数为: %d\n", min);
    
    system("pause");
    
    return 0;
} 

     

 

Part3.1

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

 

3.2

 

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

    

3.3

#include <stdio.h>
int main () {
    int n,i;
    float a,t,s,m;
    s=0;
    t=0;
    printf("Enter n and a :");
    scanf("%d%f",&n,&a);
    for (i=1;i<=n;i++)
    {
      t=a+t*10;
      m=i/t;
      s=s+m;
    } 
      
       printf("%f\n",s);
    return 0;
}

总结:实验三不会,还需努力。

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!