202083300134时瑞琪实验一

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

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

#include <stdio.h>
int main() {
    
    int x, y;
    int r1, r2, r3, r4;
    
    x = 1;
    y = 2;
    
    r1 = x + y;
    r2 = x - y;
    r3 = x * y;
    r4 = x / y;
    
    printf("r1 = %d\n", r1);
    printf("r2 = %d\n", r2);
    printf("r3 = %d\n", r3);
    printf("r4 = %d\n", r4);
    
    return 0;
}

#include <stdio.h>
int main() {
    
    float x, y;
    float r1, r2, r3, r4;
    
    x = 1;
    y = 2;
    
    r1 = x + y;
    r2 = x - y;
    r3 = x * y;
    r4 = x / y;
    
    printf("r1 = %f\n", r1);
    printf("r2 = %f\n", r2);
    printf("r3 = %f\n", r3);
    printf("r4 = %f\n", r4);
    
    return 0;
}

r4不同的原因:对于math1,由于输入的为整型变量,所以在计算除法后,也只会保留整数部分,而对于math2,输入的为浮点数,所以进行除法时,结果也会是浮点数,所以两者结果不同。

#include <stdio.h>
int main() {
    int n, r1, r2, r3, r4;
    
    n = 100;
    
    r1 = n*(n+1)/2;
    r2 = (n+1)*n/2;
    r3 = n/2*(n+1);
    r4 = (n+1)/2*n;
    
    printf("n = %d\n", n);
    printf("r1 = %d\n", r1);
    printf("r2 = %d\n", r2);
    printf("r3 = %d\n", r3);
    printf("r4 = %d\n", r4);
    
    return 0;
}

#include <stdio.h>
int main() {
    int n, r1, r2, r3, r4;
    
    n = 101;
    
    r1 = n*(n+1)/2;
    r2 = (n+1)*n/2;
    r3 = n/2*(n+1);
    r4 = (n+1)/2*n;
    
    printf("n = %d\n", n);
    printf("r1 = %d\n", r1);
    printf("r2 = %d\n", r2);
    printf("r3 = %d\n", r3);
    printf("r4 = %d\n", r4);
    
    return 0;
}

 

 

对应的数学计算式:r1=100*101/2      r2=101*100/2      r3=100/2*101     r4=101/2*100

对于r3与r4,由于二者都是先进行除法运算,所以在n为偶数时,刚好可以整除,所以r3的结果正确,而r4由于此时是奇数无法除尽且整型输出不能得到小数部分,所以是错误结果进行下一步运算,则结果会不一致。同理,当n为奇数时,r4为偶数,则整除后结果正确,而r3是奇数,除以2后以仅有整数部分的结果进行运算,最终结果肯定错误。

#include <stdio.h>
int main() {
    int answer;
    char words[5000];
    
    printf("网课学习让一些人欢喜一些人忧.\n");
    printf("1. 作为一个宅,社恐,觉得这样很好. 有网络,自主学习,很ok.\n");
    printf("2. 不喜,不喜,很不喜,眼睛快瞎了. 脑袋有点卡...\n");
    printf("3. 中间派,不知道,说不清.\n");
    printf("4. 其它...\n");
    printf("你的选择: ");
    scanf("%d", &answer);
    if(answer == 4) {
        printf("请补充说明你的想法: \n");
        getchar();
        gets(words);
    }
    
    printf("\n");
    printf("当遇到问题时,你会选择:\n");
    printf("1. 遇到问题,就解决问题。不懂的,搜索式学习,逐个攻破。\n");
    printf("2. 遇到问题,不高兴。然后,…,没有了.\n");
    printf("3. 其它...\n");
    printf("你的选择: ");
    scanf("%d", &answer);
        
    if(answer == 1)
        printf(":)\n");
    else if(answer == 2)
        printf("这样不能解决问题啊...我们选择1好不好:)\n");
    else if(answer == 3) {
        printf("请补充说明你的想法:\n");
        getchar();
        gets(words);
    } 
    
    return 0;
}

实验总结:

我学习到了:两个整数相除,所得商仍为整数,舍去小数部分,而只要有一个数为浮点数,则结果就可得到浮点数。在编制一种计算时,要先思考尤其是除法问题时会不会产生由于不能整除且为整型而导致的错误结果的问题。

体会:在书写代码时,一定要仔细,认真,否则再完美的程序也会无法运行。

尚存的问题:对于一些细的知识点尚未掌握完全,在书写代码时不够细心,可能犯一些低级错误。

 

posted @ 2021-03-13 15:42  比巴卜~  阅读(71)  评论(2编辑  收藏  举报