实验2 C语言分支语句、循环语句应用编程

------------恢复内容开始------------

 

 

实验任务一

#include <stdio.h>
int main()
{
    int num;
    
    scanf("%d",&num);
    printf("2049%04d\n",num);
    
    scanf("%d",&num);
    printf("2049%04d\n",num);
    
    scanf("%d",&num);
    printf("2049%04d\n",num);
    
    return 0;
    
    
}

 

控制符%04d的作用是以4为宽度输出数字,位数不够用0补齐

 

 

#include <stdio.h>
int main()
{
    int num;
    
    while(scanf("%d",&num) != EOF)
    {
        printf("2049%04d\n",num);
    }
    
    return 0;
    
}

 

实验任务二

#include<stdio.h>
int main()
{
    char ans1,ans2;
    
    printf("复习了没?(输入y或x表示复习了,输入n或N表示没复习): ");
    ans1 = getchar(); //从键盘输入一个字符,赋值给ans1
    
    getchar(); //思考为什么要加这一行。试着去掉这一行,看看对运行有没有影响。
    
    printf("动手敲代码了没?(输入y或Y表示敲了,输入n或N表示木有敲) : ");
    ans2 = getchar();
    
    if((ans1 == 'y'||ans1 == 'Y')&&(ans2 == 'y'||ans2 == 'Y'))
    {
        printf("\n罗马不是一天建成的:)\n");
     } 
     else
     {
         printf("\n罗马不是一天毁灭的。。。\n");
     }
     
    return 0;
}

 

 

 getchar()可以吃掉一个空格,如果没有Line9,程序运行到第一个答案回车之后就结束了,直接就会跳出下面一行文字和“罗马不是一天毁灭的。。。”

 

实验任务三

 

//判断字符类型

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

 

 

 

 

试验任务四

 

#include<stdio.h>
int main()
{
    int n,a,top,bottom;
    float sum;
    while(scanf("%d %d",&n,&a) !=EOF)
    {
        bottom = a;
        sum = 0;
    for(top=1;top<=n;top++)
    {
        sum = sum + (float)top/bottom;
        bottom = bottom*10+a;
    }

    printf("n = %d,a = %d,sum = %f\n",n,a,sum);
    }
    
    return 0;
}

 

 

实验任务五

 

// 生成N个0~99之间的随机整数,并打印输出

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

const int N = 5;

int main()
{
    int x,n;
    
    srand(time(0)); //以当前系统时间为随机种子
    
    for (n = 1;n <= N;n++)
    {
        x = rand() % 100; //生成一个0~99之间的随机整数
        printf("%3d",x); 
     } 
    printf("\n");
    return 0;
}

 

 

 

实验任务六

 

#include<stdio.h>
#include<stdlib.h>
#include <time.h>
int main()
{
    int a,i,ans;
    srand(time(NULL));
    a = rand()%31+1;
    i = 0;
    
    printf("猜猜2021年12月哪一天会是你的lucky day\n开始喽,你有三次机会,猜吧(1~31):");
    
    if(a != ans)
    {
        while(i<3)
        {
            scanf("%d",&ans); 
            if(ans<a)
            {
                printf("你猜的日期早了,lucky day还没到呢\n");
                i++;
            }
            else if(ans>a)
            {
                printf("你猜的日期晚了,lucky day悄悄溜到前面啦\n");
                i++;
            }
        }
        printf("\n次数用完啦!偷偷告诉你,12月,你的lucky day是%d号\n",a);
    }
    
    else
        {
            printf("猜对了,你真厉害!\n");
        }
    
    
    return 0;
}

 

 

实验任务七

#include<stdio.h>
int main()
{
    int i,n;
    printf("input:");
    scanf("%d",&n);
    
    for(i=0;i<n;i++)
    {
        printf(" o \n");
        printf("<H>\n");
        printf("I I\n");
    }
    return 0;
}

 

 

 

#include<stdio.h>
int main()
{
    int i,n;
    printf("input:");
    scanf("%d",&n);
    for(i=0;i<n;i++)
    {
        printf(" o \t");
    }
    printf("\n");
    
    
        for(i=0;i<n;i++)
    {
        printf("<H> \t");
    }
    printf("\n");
    
    
        for(i=0;i<n;i++)
    {
        printf("I I \t");
    }
    printf("\n");
    
    return 0;
}

 

 

 

#include<stdio.h>
int main()
{
    int i,n,a,b;          //a是总循环的次数 
    printf("input:");
    scanf("%d",&n);
    for(a=1;a<=n;a++)
    {
        for(b=1;b<a;b++)
        {
            printf(" \t");
        }
        for(i=1;i<=2*n-1-(a-1)*2;i++)    //2*n-1-(a-1)*2是每一行打印的字符的个数 
        {
            printf(" o \t"); 
        }    
        printf(" \n");      //每行o打完之后都换行 
            
//下面就同理 打印出身子和腿 
        
        for(b=1;b<a;b++)
        {
            printf(" \t");
        }
        for(i=1;i<=2*n-1-(a-1)*2;i++)
        {
            printf("<H> \t");
        }
        printf(" \n");
        
        
        for(b=1;b<a;b++)
        {
            printf(" \t");
        }
        for(i=1;i<=2*n-1-(a-1)*2;i++)
        {
            printf("I I\t");
        }
        printf(" \n");
        
    }
    return 0;
}

 

 

实验总结

本次实验主要学习并运用了 1、while、if else和for语句,以及这些语句之间简单的嵌套使用。

                                             2、补充学习了随机数的生成:

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

int main()

{
    int a;
    srand(time(NULL));
    a = rand();
    printf("随机数是%d",a); 
    
    return 0;
}

 

                                              3、并且学习了设定未知数的值,eg.若要使未知数在1~31之间,则对未知数取余,即 a=rand()%31 这样未知数的范围就变成0~30,再加1,范围就变成1~31(或者直接%32应该也可以。

实验感受:。。。程序设计挺难的,要多多练习并且注重分析和理解,锻炼逻辑思维能力(否则拿到题目脑子里完全是一团浆糊。。。

尚存的问题:感觉虽然题做完了,但没有完全理解与掌握其中的知识点,还需消化消化。

 

posted @ 2021-11-14 10:22  唐文轩  阅读(104)  评论(1编辑  收藏  举报