实验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;
}

 

 


//打印一个字符小人


#include<stdio.h>


int main()
{
printf(" O O\n");
printf("<H> <H>\n");
printf("I I I I\n");


system("pause");
return 0;
}

 

 

 

task2


//1+2+3+.....+n(设n的取值在100以内)
//用数学归纳法 (求和公式运算)


#include <stdio.h>


int main()
{
int n,sum;

//从键盘上输入一个十进制整数给n
scanf("%d",&n) ;

//待补足代码
sum = n*(n+1)/2;
//因为运算顺序不同,而且sum是整型,导致自动会舍弃运算过程中的小数部分
//打印输出求和结果
printf("sum = %d\n",sum);

return 0;
}


 

写法1 能实现题目要求

原因:因为运算顺序不同,而且sum是整型,导致自动会舍弃运算过程中的小数部分。

 

task3

#include<stdio.h>

int main()
{
int a,b,t;

a=3;
b=4;
printf("a = %d, b = %d\n",a,b);

t=a;
a=b;
b=t;
printf("a = %d, b = %d\n",a,b);
//放入一个“桥梁”t,改变a和b被赋的值
return 0;
}

功能:放入一个“桥梁”t,转换a和b被赋的值。

 

task4

#include<stdio.h>

int main()
{
    int x,t,m;
    
    x=123;
    printf("x = %d\n", x);
    
    t=0;
    
    m=x%10;
    t=t*10+m;
    x=x/10;
    
    m=x%10;
    t=t*10+m;
    x=x/10;
    
    m=x%10;
    t=t*10+m;
    x=x/10;
    
    printf("t = %d\n",t);
    
    return 0;
}

 

 

 

 

 

task5

 

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

#include <stdio.h>

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

 

 

 

 

task6 

//计算10亿秒约等于多少年,并打印取出
#include <stdio.h>
#include <math.h>
int main()
{
    int year;
    float num;
    double second;
    second = 1e+9;
    num = second/60/60/24/365;
    year = round(num+0.5);
    
    printf("10亿秒约等于%d年\n", year);
    return 0;
 } 

 

 

task7

//生成一个[60,100]区间的随机整数,并打印输出
#include <stdio.h>

int main()
{
    int n;
    srand((unsigned)time(NULL));
    n = rand() % 41 + 60 ;
    
    printf("n = %d\n", n);
    return 0;
 } 

 

 

task8

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

 

 

 

实验总结:

收获的具体知识点:表达式的值的类型自动被转换为变量的类型,根据表达式的类型和优先级,合理安排运算顺序

新发现:四舍五入的函数round() 

体会/问题:逻辑关系还是不清楚,要多练习写代码,希望以后多出一些像6~8的思考题,运行成功后成就感爆棚 :)

 

posted @ 2023-03-04 12:12  傲芙  阅读(57)  评论(0)    收藏  举报