• 第六次作业


    一、实验内容   

    1.有一个四位正整数,组成这个四位数的四个数字各不相同,如果把它们的首尾互换,第二位与第三位互换,组成一个新的四位数。原四位数为新四位数的4倍,请找出一个这样的四位数。

    #include<stdio.h>
    int main()
    {
        int a,b,c,d,e,i;
        for(i=1000;i<10000;i++)
        {
            a=i%10;
            b=i/10%10;
            c=i/100%10;
            d=i/1000;
      if(a==b||a==c||a==d||b==c||b==d||c==d)
      {
       continue;
      }
      else
      {
       e=a*1000+b*100+c*10+d;
       if(i==e*4)
       printf("%d",i);
      }
        }
        return 0;
    }

    2.输入任意一个多位的数字,求各位数字之和。如果在【1,12】之内,则输出与和数字对应的月份的英文名称,否则输出***。

      样例: 输入123,    输出 6     June

                输入12345,输出 15   ***

    #include<stdio.h>
    int main()
    {
        int a,b,sum=0;
        printf("输入一个多位数字");
        scanf("%d",&a);
        while(a>0)
        {
            b=a%10;
            a=a/10;
            sum=sum+b;
        }
        printf("%d  ",sum);
        switch(sum)
        {
            case 12:printf("December
    ");break;
            case 11:printf("November
    ");break;
            case 10:printf("October
    ");break;
            case 9:printf("Septmber
    ");break;
            case 8:printf("August
    ");break;
            case 7:printf("July
    ");break;
            case 6:printf("June
    ");break;
            case 5:printf("May
    ");break;
            case 4:printf("April
    ");break;
            case 3:printf("March
    ");break;
            case 2:printf("February
    ");break;
            case 1:printf("January
    ");break;
            default:printf("***
    ");
        }
        return 0;
    }

    3.给定不超过6的正整数A,考虑从A开始的连续4个数字。请输出所有由它们组成的无重复数字的3位数。

       输入格式:输入在一行中给出A。

       输出格式:输出满足条件的的3位数,要求从小到大,每行6个整数。整数间以空格分隔,但行末不能有多余空格。

       输入样例:2

       输出样例:234  235  243  245  253  254

                      324  325  342  345  352  354

                      423  425  432  435  452  453

                      523  524  532  534  542  543

    #include<stdio.h>
    int main()
    {
        int a,b,c,d,e,f;
        printf("请输入一个不大于6的数字
    ");
        scanf("%d",&a);
        for(f=0,b=100;b<1000;b++)
        {
            c=b/100;
            d=b/10%10;
            e=b%10;
            if(c>=a&&c<=a+3&&d>=a&&d<=a+3&&e>=a&&e<=a+3&&c!=d&&d!=e&&c!=e)
            {
                printf("%d ",b);
                f=f+1;
                if(f%6==0)
                printf("
    ");
            }
        }
        return 0;
    }

    4. 万年历、看商品猜价格、自动出题器、猜拳游戏。(完成个人选定的题目)

    #include<stdio.h>
    #include<stdlib.h>
    int main()
    {
        int year,year2,month,day,sum1=0,sum2=0,sum=0,i,a;
        printf("输入年份-月份
    ");
        scanf("%d-%d",&year,&month);
        year2=year;
        for(year=year-1;year>=1900;year--)
        {
            if(year%4==0&&year%100!=0||year%400==0)
            sum1=sum1+366;
            else
            sum1=sum1+365;
        }
        for(i=1;i<month;i++)
        {
            if(i==1||i==3||i==5||i==7||i==8||i==10||i==12)
            sum2=sum2+31;
            else if(i==4||i==6||i==9||i==11)
            sum2=sum2+30;
            else
            {
                if(year2%4==0&&year2%100!=0||year2%400==0)
                sum2=sum2+29;
                else
                sum2=sum2+28;
            }
        }
        sum=sum1+sum2;
        system("cls");
        printf("星期一  星期二  星期三  星期四  星期五  星期六  星期日
    ");
        a=sum%7;
        for(i=1;i<=a;i++)
        {
            printf("	");
        }
        if(month==1||month==3||month==5||month==7||month==8||month==10||month==12)
        day=31;
        else if(month==4||month==6||month==9||month==11)
        day=30;
        else
        {
            if(year2%4==0&&year2%100!=0||year2%400==0)
            day=29;
            else
            day=28;
        }
        for(i=1;i<=day;i++)
        {
            printf("  %2d    ",i);
            if((a+i)%7==0)
            printf("
    ");
        }
    return 0;
    }

    知识点总结:

    1.for循环通常用于计数控制:用专门的循环变量来计算循环次数,循环变量的值在每次执行完循环体各语句后递增,达到预定的循环次数时则终止循环,继续执行循环结构后的语句。

    2.增量运算符单独使用时,前缀形式和后缀形式的结果是一样的。增量运算符作为表达式的一部分时,前缀形式和后缀形式的执行过程是不一样的。

    3.for语句中的表达式可以部分省略或者全部省略,但;不能省略。

    实验总结:

    1.循环体中应有使循环趋向于结束的语句。

    2.无限循环中,通过在循环体中加break语句对循环进行控制。

    3.循环的嵌套:1)三种循环可互相嵌套,层数不限。2)外层循环可包含两个以上内循环,但不能相互交叉。3)嵌套循环的执行流程:外层循环执行一次,内层循环要完成所有循环。

    4.循环结构常见错误:1)循环语句中循环体复合语句时忘记加括号。2)循环开始前,未将计数器变量和变量和乘积变量初始化。

  • 相关阅读:
    vim 打开了没有权限写入的文件,怎么才能不必重新编辑
    Linux 关闭终端响铃的特性
    Python 的 print 函数
    C 语言标准库中的qsort函数使用
    java知识学习14-面向对象
    java知识学习13-方法
    java知识学习12-数组
    mac格式化重装系统
    java知识学习11- IDEA
    java知识学习10-跳转控制语句(break/continue)、循环嵌套、Random
  • 原文地址:https://www.cnblogs.com/zhaojingwen123/p/6048995.html
Copyright © 2020-2023  润新知