2021-11-04

一、实验目的及要求

(宋体五号字,1.5倍行距,下同)

1. 掌握集成环境中设计C程序的方法;

2、掌握数据类型、运算符、表达式在编程中的使用;

3、掌握顺序结构、选择结构的运用

4、能用C语言基本语法解决一些小的应用问题。

二、实验使用的主要设备(含软件系统)及要求

 实验设备:计算机+网络

软件:Visual C++/Dev-Cpp

平台:educoder.net 头歌实践平台

三、实验操作过程及内容

1. 输入三角形的三边求三角形的面积(顺序结构)。

2. 输入一个四位数的整数,逆序输出其个、十、百、千位(顺序结构,算术运算)

3. 请输入一元二次方程的3个系数,求解该一元二次方程,包含:复数解,实解的情况。

4. 输入三角形三条边,是三角形的话,判断是什么三角形(等边,等腰,普通),然后计算三角形周长和面积。

5. 用switch语句实现输入某年某月某日,判断这一天是这一年的第几天 。

6. 用switch语句实现输入一个不多余5位的正整数,要求①求出它是几位数②分别输出每一位数字③按逆序输出各位数字

  • 实验结论、问题与建议(含取得的成果)

1.程序代码:

#include <stdio.h>

#include<math.h>

int main()

{

    float a,b,c,s;

    double area;

    scanf("%f%f%f",&a,&b,&c);

    s=(a+b+c)/2.0;

area=sqrt(s*(s-a)*(s-b)*(s-c));

printf("a=%f b=%f c=%f\narea=%f\n",a,b,c,area);

    return 0;

}

运行结果:

测试输入:3 4 5

实际输出:a=3.000000 b=4.000000 c=5.000000 area=6.000000

  1. 程序代码:

#include <stdio.h>

int main()

{

   int x,b0,b1,b2,b3;

   scanf("%d",&x);

   b0=x%10;

   x=x/10;

   b1=x%10;

   x=x/10;

   b2=x%10;

   x=x/10;

   b3=x%10;

   printf("%d,%d,%d,%d\n",b0,b1,b2,b3);

   return 0;

}

运行结果:

测试输入:                                实际输出:4321

1234

3.程序代码:

#include <stdio.h>

#include<math.h>

int main()

{

    /**********Bigin**********/

    double a, b, c, d, e,f;

    double x,x1, x2;

    /**********Bigin**********/

    scanf("%lf%lf%lf",&a,&b,&c);

    d=(pow(b,2))-(4*a*c);

    

    if(a==0&&b==0)

    printf("无解\n");

    else if(a==0&&b!=0)

    {

    x=-c/b;

    printf("x=%.2f",x); 

    }

    else if(d==0)

    {

    x1=-b/(2*a);

    printf("x1=x1=%.2f\n",x1);

    }

    else if(d>0)

    {

        x1=(-b+sqrt(d))/(2*a);

        x2=(-b-sqrt(d))/(2*a);

        printf("x1=%.2f\nx2=%.2f\n",x1,x2);

    }

    else

    {

        e=-b/2/a;

        f=sqrt(4*a*c-b*b)/(2*a);

        printf("x1=%.2f+%.2fi\n",e,f);

        printf("x2=%.2f-%.2fi\n",e,f);

    }    return 0;

}

运行结果:测试输入: 0 0 5 预期输出: 无解 测试输入: 0 2 -5 预期输出: x=2.50 测试输入: 1 2 1 预期输出: x1=x1=-1.00 测试输入: 1 -5 3 预期输出: x1=4.30 x2=0.70 测试输入: 2 -3 7 预期输出: x1=0.75+1.71i x2=0.75-1.71i

4.程序代码:

#include <stdio.h>

#include<math.h>

int main()

{

    double t,s;

    int a,b,c,l;

    scanf("%d%d%d",&a,&b,&c);

    if(a+b<=c||a+c<=b||b+c<=a)

    printf("不构成三角形\n");

    else 

{

        t=(a+b+c)/2.0;

        s=sqrt(s*(s-a)*(s-b)*(s-c));

        l=a+b+c;

        printf(%lf %d ,s,l);

        if(a==b&&b==c)

        printf("等边三角形\n");

        else if(a==b||a==c||b==c)

        printf("等腰三角行\n");

        else if((pow(a,2)+pow(b,2)==pow(c,2))||(pow(b,2)+pow(c,2)==pow(a,2))||(pow(a,2)+pow(c,2)==pow(b,2)))

        printf("直角三角形\n");

        else

        printf("普通三角形\n");

return 0;

}

运行结果:输入: 1 2 3 预期输出: 不构成三角形输入:9 2 3 4 预期输出: 普通三角形输入:10  3 3 4 预期输出: 等腰三角行输入:9 3 3 3 预期输出: 等边三角形输入:6 12 3 4 5 预期输出: 直角三角形

5.程序代码:

#include<stdio.h>

int main()

{

    int day,month,year,num=0,leap;

    scanf("%d%d%d",&year,&month,&day);

    /*****先计算某月以前月份的总天数*****/

    /********** Begin **********/

    switch(month)

{

    case 12: num +=30;

    case 11: num+=31;

    case 10: num+=30;

    case 9: num+=31;

    case 8: num+=31;

    case 7: num+=30;

    case 6: num+=31;

    case 5: num+=30;

    case 4: num+=31;

    case 3: num+=28;

    case 2: num+=31;

}

    num+=day;

    /********** End **********/

    /*****再加上当月的天数*****/

    if(year%4==0&&year%100!=0||year%400==0)

    leap=1;

    else

    leap=0;

    /*****判断是不是闰年*****/

    /********** Begin **********/

    num+=leap;

    /********** End **********/

    /*****如果是闰年且月份大于2,总天数应该加一天*****/

    /********** Begin **********/

    /********** End **********/

    printf("这一天是这一年的第%d天",num);

    return 0;

}

运行结果:

测试输入:                                实际输出:这一天是这一年的第256天

2020 9 12

6.

程序代码:

#include <stdio.h>

#include <math.h>

int main()

{

    int num,y,x1,x2,x3,x4,x5,place;

    scanf("%d",&num);

    place=log10((double)num)+1;//

    /********** Begin **********/ y=num;

    x1=y%10;

    y=y/10;

    x2=y%10;

    y=y/10;

    x3=y%10;

    y=y/10;

    x4=y%10;

    y=y/10;

    x5=y%10;

    printf("%d为%d位数\n",num,place);

    printf("顺序输出为:");

    switch(place)

    {

        case 5:printf("%d,",x5);

        case 4:printf("%d,",x4);

        case 3:printf("%d,",x3);

        case 2:printf("%d,",x2);

        case 1:printf("%d\n",x1);

    }

    printf("逆序输出为:");

    switch(place)

    {

        case 5:printf("%d,%d,%d,%d,%d\n",x1,x2,x3,x4,x5);break;

        case 4:printf("%d,%d,%d,%d\n",x1,x2,x3,x4);break;

        case 3:printf("%d,%d,%d\n",x1,x2,x3);break;

        case 2:printf("%d,%d\n",x1,x2);break;

        case 1:printf("%d\n",x1);break;

    }

    /********** End **********/

    return 0;

}

运行结果:出 ——1234为4位数 顺序输出为:1,2,3,4 逆序输出为:4,3,2,1

 

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值