实验1

任务1:

水平方向

#include <stdio.h>
int main()
{
printf(" O   O \n");
printf("<H> <H>\n");
printf("I I I I\n");
return 0;
}

竖直方向

#include <stdio.h>
int main()
{
printf(" O  \n");
printf("<H> \n");
printf("I I \n");
printf(" O  \n");
printf("<H> \n");
printf("I I \n");
return 0;
}

 

任务2:

// 从键盘上输入三个数据作为三角形边长,判断其能否构成三角形
// 构成三角形的条件: 任意两边之和大于第三边
#include <stdio.h>
int main()
{
    double a, b, c;
    // 输入三边边长
    scanf_s("%lf%lf%lf", &a, &b, &c);
    // 判断能否构成三角形
    // 补足括号里的逻辑表达式
    if (a+b>c&&a+c>b&&b+c>a)
        printf("能构成三角形\n");
    else
        printf("不能构成三角形\n");
    return 0;
}

 

 

任务3:

#include <stdio.h>
int main()
{
    char ans1, ans2; // 用于保存用户输入的答案
    printf("每次课前认真预习、课后及时复习了没? (输入y或Y表示有,输入n或N表示没有) :");
        ans1 = getchar(); // 从键盘输入一个字符,赋值给ans1
    getchar(); // 思考这里为什么要加这一行。试着去掉这一行,看看对运行有没有影响。
    printf("\n动手敲代码实践了没? (输入y或Y表示敲了,输入n或N表示木有敲) : ");
    ans2 = getchar();
    if ((ans1=='y'||ans1=='Y')&&(ans2=='y'||ans2=='Y')) // 已补足
        printf("\n罗马不是一天建成的, 继续保持哦:)\n");
    else
        printf("\n罗马不是一天毁灭的, 我们来建设吧\n");
    return 0;
}

 

 

 回答问题:删去line9后,出现如下结果:

原因:步骤一赋值给ans1后,按下回车键进入下一步,若无line9的getchar(),回车将直接作为输入值赋给步骤二中的ans2,进而导致程序直接终止

 

任务4:

#include <stdio.h>

int main()
{
    double x, y;
    char c1, c2, c3;
    int a1, a2, a3;

    scanf("%d%d%d", &a1, &a2, &a3);      \\错误点 
    printf("a1=%d,a2=%d,a3=%d\n", a1, a2, a3);

    scanf("%c%c%c", &c1, &c2, &c3);
    printf("c1=%c,c2=%c,c3=%c\n", c1, c2, c3);

    scanf("%lf%lf", &x, &y);             \\错误点 
    printf("x=%lf,y=%lf\n", x, y);

    return 0;
}

任务5:

#include <stdio.h>
#include <math.h>
int main()
{
    int year;
    
        double year_1;              //补足代码 
    year_1=1e9/31536000;
    year=round(year_1);
                         
        
    printf("10亿秒约等于%d年\n", year);
    return 0;
}

任务6:

#include <stdio.h>
#include <math.h>
int main()
{
    double x,ans;
    
    while(scanf("%lf",&x) !=EOF)
    {
        ans=pow(x,365);
        printf("%.2f的365次方: %.2f\n", x, ans);
        printf("\n");
    }
return 0;
}
        
        
        

任务7:

//摄氏温度与华氏温度的转换
#include <stdio.h>

int main()
{

    double C,F;
    
    while(scanf("%lf",&C) !=EOF)
    {
        F=C*9/5+32;
        printf("华氏温度为%.2lf",F);
        
    }
    
    
    
    return 0;
}
        
        

任务8:

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

int main()
{
    double a,b,c,s,t,S;


    
    while(scanf("%lf%lf%lf",&a,&b,&c) !=EOF)
    {
        s=(a+b+c)/2;
        t=s*(s-a)*(s-b)*(s-c);
        S=pow(t,0.5);
        printf("三角形面积为%.3lf",S);
        
    }
    
    
    
    return 0;
}
        

 

实验总结:一味复制不能提高编程技术,只有自己体验,自己改错,才能从一条条代码中汲取经验,走向更好的未来。

 

posted @ 2024-09-28 14:43  kilitok  阅读(12)  评论(0编辑  收藏  举报