实验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的作用:%占位符的作用,d以十进制打印,4最大字段宽度为4,0前导用0代替空格填充。

源码:

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

结果:

 

 实验二:

源码:

#include <stdio.h>
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')&&(ans1=='y'||ans1=='Y')) 
    printf("\n罗马不是一天建成的:)\n");
    else
    printf("\n罗马不是一天毁灭的。。。\n");
    return 0;
}

结果:

 

 实验三:

源码:

#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,i;
    double sum;
    
    while(scanf("%d %d",&n,&a)!=EOF)
    {
        printf("n = %d, a = %d, ",n,a);
        for(i=1,sum=0;i<=n;i++)
        {
            sum+=i*1.0/a;
            a=10*a+a%10;
        }
        printf("sum = %lf",sum);
    }
    return 0;
}

结果:

 

 实验五:

源码:

#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() % 31)+1; // 生成一个0~99之间的随机整数
        printf("%3d", x);
    }
    printf("\n");
    return 0;
}

结果:

 

 实验六:

源码:

 

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

int main()
{
    int my_luck_day,my_guess,i;
    printf("猜猜2021年12月哪一天会是你的luck day\n");
    printf("开始喽,你有三次机会,猜吧(1~31):");
    srand(time(0)); 
    my_luck_day = (rand() % 31)+1;  
    printf("%d",my_luck_day);
    for(i=1;i<=3;i++)
    {
        scanf("%d", &my_guess);
        getchar();
        if(my_guess<my_luck_day)
        {
            printf("你猜的日期早了,luck day 还没到呢\n");
            if(i==3)
                break;
            printf("再猜(1~31):");
        }
        else if(my_guess==my_luck_day)
        {
            printf("bingo~,你猜对了!\n");
            break;
        }
        else
        {
            printf("你猜的日期晚了,luck day 悄悄溜到前面啦\n");
            if(i==3)
                break;
            printf("再猜(1~31):");
        }
    }
    if( i==3 && my_guess!=my_luck_day )
        printf("次数用完啦。偷偷告诉你:12月,你的luck day 是%d号\n",my_luck_day);        
    return 0;
    
}

结果:

 

 

 

 

 

 实验七:

源码:

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

 

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

结果:

 

 

实验总结:

1.条件语句的if语句,if...else if...else语句,语句的嵌套使用及其技巧(分而治之的思想,层层剥茧),多分支语句switch(目前用的还不是很熟练,更习惯用if...else if代替),

循环语句的while循环,do...while(目前也不是很熟练,潜意识里都是先判断后执行的想法),for循环;

2.break和continue(目前打断循环的位置还是没办法第一时间找到,并且和条件语句搭配时找位置更花时间);

3.getchar()的吸收回车键作用;

4.算法这一块感觉还要多练。。。。。。

 

posted @ 2021-11-17 09:43  gl11639  阅读(30)  评论(2编辑  收藏  举报