实验1 C语言输入输出和简单程序编写

发布时间 2023-10-04 22:59:44作者: liritty

1.试验任务1 

 task1.c

//打印一个字符小人

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

 

task1_1.c

//在垂直方向上打印出两个小人 

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

 

 

task1_2.c

//在水平方向上打出两个字符小人

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

 2.试验任务2

task2.c

// 从键盘上输入三个数据作为三角形的边长,判断其能否构成三角形
// 构成三角形的条件: 任意两边之和大于第三边
 
#include <stdio.h>

int main()
{
    float a, b, c;
    
    //输入三边边长
    scanf("%f%f%f", &a, &b, &c) ;
    
    //判断能否构成三角形
    //补足括号里的逻辑表达式
    if(a+b>c && a+c>b && b+c>a)
        printf("能构成三角形\n");
    else
        printf("不能构成三角形\n");
        
    return 0;
}

 

 

 

3.试验任务3

// 功能 :只有当用户两次回答都是小写y或大写Y时,才会打印输出: 罗马不是一天建成的,继续保持哦;)
//        否则,会打印输出: 罗马不是一天毁灭的,我们来建设吧

#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==121||ans1==89 &&ans2==121||ans2==89)
        printf("\n罗马不是一天建成的,继续保持哦:)\n");
    else
        printf("\n罗马不是一天毁灭的,我们来建设吧\n");
        
    return 0;
 } 

 

 

 

 回答问题:getchar()消除回车符,使得下一次输入的y或者n可以被接收

 

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

//计算10亿秒约等于多少年,并打印输出
#include <stdio.h>

int main() 
{
    float second,year,minute,hour,day;
    int yyear;
    
    second = 1000000000;
    minute = second/60 ;
    hour   = minute/60 ;
    day    = hour/24   ;
    year   = day/365   ;
    
    yyear   = int(year + 0.5); 
    
    printf("10亿秒约等于%d年\n",yyear) ;
    
    return 0;
}

 

//对task6_1.c稍做修改,借助循环,使得程序运行一次,就可以完成多次计算。

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

 

实验任务6

//对task6_1.c稍做修改,借助循环,使得程序运行一次,就可以完成多次计算。

#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

//实现摄氏温度C与华氏温度F的转换
//F = 9/5C + 32
//要求1:使用多组输入方式,支持运行一次程序能进行多次计算
//要求2:温度保留到小数点后第二位

#include <stdio.h>

int main()
{
    double F, C;
    
    while(scanf("%lf", &C) != EOF)
    {
        F =  9/5*C + 32 ;
        printf("摄氏度c=%.2f时,华氏温度f= %.2f\n", C, F);
        printf("\n");
    }
    return 0;
}

 

 

试验任务8

//用海伦公式计算三角形面积 
//要求1:键入三角形的三边长,在屏幕上打印出面积(面积保留小数点后三位)
//要求2:使用多组输入方式,支持运行一次程序能进行多次运算
//注:假定输入的数据都满足三角形三边关系 

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

int main()
{
    double a, b, c, S;
    double s;
    
    while(scanf("%lf%lf%lf", &a, &b, &c) != EOF)
    {   
    
        s = (a + b + c)/2 ;
        S = sqrt(s*(s-a)*(s-b)*(s-c)) ; 
        printf("a = %.0lf, b = %.0lf, c = %.0lf, area =%.3lf\n",a,b,c,S) ;
        
    }
    return 0;
}