实验一

实验结论

task 1

task1-1

//打印一个字符小人

#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

//打印一个字符小人

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

 

 

task 2

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

#include <stdio.h> 

int main() 
{ 
    int n, sum; 
    
    // 从键盘上输入一个十进制整数给n 
    scanf("%d", &n);
    
    // 待补足代码 
    sum = n*(n+1)/2;
    // 打印输出求和结果 
    printf("sum = %d\n", sum); 
    
    return 0; 
}

 

 回答问题:写法1,2可以满足要求;写法3,4不可以

原因:符号优先级为小括号>乘=除,所以3和4计算顺序出错

 

task 3

#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); 
    
    return 0; 
}

 

 

回答问题:作用是交换a和b的赋值

 

task 4

#include <stdio.h> 

int main() 
{ 
    int x, t, m; 
    
    x = 456; 
    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;
}

 

 

回答问题:作用是使x每个数位上的数字倒序排列并赋值给t

 

task 5

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

#include <stdio.h>

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

 

 

 

 

 

task 6

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

int main()
{
    int year;

    // 补足代码
    float t;
    
    t=10^9/31536000; 
    year=t+0.5;
    
    printf("10亿秒约等于%d年\n", year);
    return 0;
}

 

 

task 7

// 生成一个[60, 100]区间之间的随机整数,并打印输出
#include <stdio.h>
#include <stdlib.h>
#include <time.h>
int main()
{
    int n;

    // 补足代码
    srand((unsigned int)time(NULL));
    n=rand()%40+60;
    
    printf("n = %d\n", n);

    return 0;
}

 

 

task 8

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

 

 

 

 

实验总结

1,对一些算法函数的掌握不够牢固,写代码的时候也不够细心,经常出一些语法错误,之后应当经常写代码练手
2,今后会多上C++官网浏览学习,以求熟悉常用的语法函数,不在写代码时露怯
3,写代码时注意分隔,别忘句末的分号!!!

 

posted @ 2023-03-02 21:06  Anyazmh  阅读(16)  评论(0编辑  收藏  举报