码迷,mamicode.com
首页 > 其他好文 > 详细

实验2:wonderful

时间:2020-11-01 10:26:52      阅读:15      评论:0      收藏:0      [点我收藏+]

标签:编译   strong   其它   load   运行   复习   sum   效果   知识点   

首先非常感谢老师及同学们对我的帮助,使我终于找到了截图工具

技术图片

(果然还是我的问题,怎么能怪电脑呢?)

正片开始——实验2

1.任务1

#include<stdio.h>
int main(){
    int a=5,b=7,c=100,d,e,f;
    
    
    d=a/b*c;
    e=a*c/b;
    f=c/b*a;
    printf("d=%d,e=%d,f=%d\n",d,e,f);
    
    return 0;
} 

从理论上分析,变量d的值是0,e的值是71,f的值是70

实际运行结果:

技术图片

与理论符合得很好

line6-8中的算术表达式为(不好用键盘表示,只能用文字辅助了):

6.a/b取整再乘c

7.先是a乘以c再除以b,再对整个求整

8.先是c除以b求整,再乘以a

变量d,e,f的计算结果不同的原因是没有考虑整型变量或误解了整型变量的适用范围

 

2.任务2

#include<stdio.h>
int main(){
    int x=1234;
    float f=123.456;
    double m=123.456;
    char ch=a;
    char a[]="Hello,world!";
    int y=3,z=4;
    
    
    
    printf("%d %d\n",y,z);
    printf("y=%d, z=%d\n",y,z);
    printf("8d,%2d\n",x,x);
    printf("%f, %8f, %8.1f,%0.2f, %.2e\n",f,f,f,f,f);
    printf("%lf\n",m);
    printf("%3c\n",ch);
    printf("%s\n%15s\n%10.5s\n%2.5s\n%.3s\n",a,a,a,a,a);
    
    return 0;    
} 

运行结果:

技术图片

经本人仔细查阅得知以下格式符及其用法

%d 从键盘输出十进制整数

%c 从键盘输出一个字节

%f 从键盘输出一个实数(%e和%f作用相同,%lf输出double的变量)

%s 从键盘输出一个字符串

PS:若在格式符%和d,f,c,s等字母之间加上常数则表示输出常数位,加上l则表示输出长X型数据

 

3.任务3

修改后代码

#include<stdio.h>
int main(){
    double x,y;
    char c1,c2,c3;
    int a1,a2,a3;
    
    scanf("%d%d%d",&a1,&a2,&a3);
    printf("%d,%d,%d\n",a1,a2,a3);
    
    scanf(" %c %c %c",&c1,&c2,&c3);
    printf("%c%c%c\n",c1,c2,c3);
    scanf("%lf,%lf",&x,&y);
    printf("%lf,%lf\n",x,y);
    
    return 0;
}

主要难在如何正确输入上

n次未正确输入结果:

技术图片

然后迫不得已求助各路大佬才得知正确的输入方法:

方法1:1空格2空格3abc1.5,2.5

方法2:  1回车2回车3回车9(空格)a空格或回车b空格或回车c空格或回车1.5,2.5

(PS:某位高年级大佬说a前面加个空格可以使输入和输出正常,因为程序会把空格自动识别为%c,所以在%c前加一个空格就能在输入时把空格或逗号那种字符

吞掉从而使输入输出正确,有点费解,嗯——不过现在我不加空格也可以使程序正常运行了)

正确输入结果(2种方法之一)

技术图片

 

4.任务4

填写畅通无阻

#include<stdio.h>
int main(){
    char x;
    
    x=getchar();
    
    
    if(x>=0&&x<=9)
       printf("%c是数字字符\n",x);
    else if(x>=a&&x<=z||x>=A&&x<=Z)
       printf("%c是英文字符\n",x);
    else
       printf("%c是其它字符\n",x);
       
       
       return 0;
} 

运行结果

(1)数字字符

技术图片

 正常

(2)英文字符

技术图片

也正常

(3)其它字符

输入用英文输入法输入的符号时

技术图片

正常

然额

当输入用中文输入法输入的¥

技术图片

????????????????????????????????????????????????????????

Why?

5.任务5

也还好操作

int main() {
    char ans1, ans2;
    
    printf("复习了没? (输入y或Y表示复习了,输入n或N表示没复习) :  ");
    ans1 = getchar();  
    
    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;
} 

运行结果

技术图片

技术图片

技术图片

截图截得参差不齐(已人工对齐),不过运行倒是正常的

 

6.任务6

真心不太会搞,上网学习来的(这个程序仅用来算2的n次方)

#include<stdio.h>
#include<math.h>
int main()
{
    int n;
    unsigned long long sum;
    printf("请输入要计算的N次方:");
    scanf("%d",&n);
    sum=pow(2,n);
    printf("%llu",sum);
    return 0; 
}

运行结果

技术图片

然后应用这个自己编译了一个求和程序

可同时输出2的n次和其总和

#include<stdio.h>
#include<math.h>
int main()
{
    int n;
    unsigned long long sum;
    printf("请输入要计算的N次方:");
    scanf("%d",&n);
    sum=pow(2,n);
    
    printf("%d\n",sum);
    int s;
    s=2*sum-2;
    printf("%d",s);
    
    return 0; 
}

运行结果(有两张照片粘在一起了,弄不开了emmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmm)

技术图片

技术图片技术图片

技术图片

NICE-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------

PS:1.pow(x,y)函数的作用是计算x的y次方,x,y及函数值都是double型,要求源代码用#include<stdio.h>和#include<math.h>

      2.%llu对应的数据类型为unsigned long long,这是C语言用来表示整数的最大类型

      3.请允许我在程序中所作的小小的补充

 

7.任务7

矩阵小人太难了,我只实现了小人的颜色变换和移动,而且我还不能同时实现这2个目标

碰巧之前向某学习爱好者学习了颜色变换的技巧(滑稽)....................................................................................................................................................................

刚打开代码,我惊了

技术图片

这是什么鬼画符???????????????????????????????????????????????

现在正常了

#include<stdio.h>

#include<stdlib.h>

int main()

{

    int i;

    for (i = 1; i <= 250;)

    {

        system("color 1"); 

        system("color 2");

        system("color 3");

        system("color 4");

        system("color 5");

        system("color 6");

        system("color a");

        printf("你牛逼的我无话可说\t");



        i = i + 0.03125;

    }



    return 0;

}

然后就实现了(以下只是部分颜色)

技术图片

技术图片

技术图片

鉴于以上基础

我实现了会变色的纵向appear小人

代码附上——

#include<stdio.h>
#include<stdlib.h>
#include<windows.h>

int main()

{

    int i;

    for (i = 1; i <= 250;)

    {

        system("color 1"); 

        system("color 2");

        system("color 3");

        system("color 4");

        system("color 5");

        system("color 6");

        system("color a");
        printf(" O\n");
        printf("<H>\n");
        printf("I I\n");
        
        
    }
        return 0;
}
            

效果图(视频咋上传?)

技术图片

颜色可变噢

由于个人经验不足和猎奇心理,又上网学习了怎样使小人水平移动

代码2附上

#include<stdio.h>

#include<stdlib.h>
#include<windows.h>
int main(){
    int i;
    int a,b;
    a=0;

    for (i = 1; i <= 250;)

    {

        system("color 1"); 

        system("color 2");

        system("color 3");

        system("color 4");

        system("color 5");

        system("color 6");

        system("color a");
        
        
        while(a<=80)
        {
            system("cls");
            b=1;
            while(b<=a)
            {
                printf(" ");
                b=b+1;
                
            }
            printf(" O\n");
            
            b=1;
            while(b<=a)
            {
                printf(" ");
                b=b+1;
            }
            printf("<H>\n");
            
            b=1;
            while(b<=a)
            {
                printf(" ");
                b=b+1;
            }
            printf("I I\n");
            
            Sleep(300);
            a=a+1;
        i=i+0.03125;    
        }

但不知为啥,小人移动时只呈现绿色,只有停下时才呈现颜色变换。

为什么不能同时呈现呢?

效果图奉上——

(1)移动过程中

技术图片

(2)停下来时

技术图片

在学长的细心指导下,现在阔以了 

#include <stdio.h>

#include <stdlib.h>
#include <windows.h>
int main()
{
    int i;
    int a, b;
    a = 0;

    for (i = 1; i <= 250;i = i + 0.03125)

    {
        a=0;

        while (a <= 80)
        {
            system("color 1");
            system("color 2");
            system("color 3");
            system("color 4");
            system("color 5");
            system("color 6");
            system("color a");
            
            system("cls");
            b = 1;
            while (b <= a)
            {
                printf(" ");
                b = b + 1;
            }
            printf(" O\n");

            b = 1;
            while (b <= a)
            {
                printf(" ");
                b = b + 1;
            }
            printf("<H>\n");

            b = 1;
            while (b <= a)
            {
                printf(" ");
                b = b + 1;
            }
            printf("I I\n");

            Sleep(300);
            a = a + 1;
        }
    }

    return 0;
}

效果图3(部分颜色,4张截图)

技术图片技术图片技术图片技术图片

实验总结

1.本次实验中出现了许多让我无法解释的现象

                    我在上面都提到了:

                   (1)

                   技术图片

                    (2)

                    技术图片

                坚信发现问题比解决问题更重要,奥利给——

                但问题

                还是要解决的

                在此向各路大佬们致以崇高的敬意——

2.知识点整理Time

技术图片

 3.Addition

(1)能不能把体会感受及分享的内容和实验部分结合在一起呢?我觉得这样更方便书写和阅读,感受也会更丰富自然一些

(2)我想分享的大都在以上实验里了,欢迎阅读

(3)做了一下午了,码字不易,给个好评吧

最后

谢谢所有看到最后的人!

实验2:wonderful

标签:编译   strong   其它   load   运行   复习   sum   效果   知识点   

原文地址:https://www.cnblogs.com/zhang99199/p/13906011.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!