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

第六次作业

时间:2016-11-13 19:03:04      阅读:231      评论:0      收藏:0      [点我收藏+]

标签:ril   blog   png   不清晰   return   while语句   ber   技术分享   i++   

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

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

技术分享

 

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

  样例: 输入123,    输出 6     June

            输入12345,输出 15   ***

#include<stdio.h>
int main()
{
    int a,sum=0;
    printf("请输入一个多位数\n");
    scanf("%d",&a);
    while(a<=0)
    {
        printf("输入错误。\n");
        scanf("%d",a);
    }

    while(a>0)
    {
        sum=sum+a%10;
        a=a/10;
    }
    printf("%d\n",sum);
    switch(sum)
        {
        case 1:printf("January\n");break;
        case 2:printf("February\n");break;
        case 3:printf("March\n");break;
        case 4:printf("April\n");break;
        case 5:printf("May\n");break;
        case 6:printf("June\n");break;
        case 7:printf("July\n");break;
        case 8:printf("August\n");break;
        case 9:printf("September\n");break;
        case 10:printf("October\n");break;
        case 11:printf("November\n");break;
        case 12:printf("December\n");break;
        default:printf("***\n");break;
        }
    return 0;
}

技术分享技术分享技术分享技术分享

 

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

#include<stdio.h>
int main()
{
    int i,x,b,c,d,e;
    printf("输入一个不超过6的正整数A。\n");
    scanf("%d",&x);
    if(x<=0||x>=6)
    {
        printf("输入错误,请重新输入。\n");
    }
    else
    {
        for(b=x;b<x+4;b++)
        {
            for(c=x;c<x+4;c++)
            {
                for(d=x;d<x+4;d++)
                {
                    if((b!=c&&b!=d)&&d!=c)
                    {
                        e=b*100+c*10+d;
                        i++;
                        if(i%6!=0)
                        {
                            printf("%d ",e);
                        }
                        else
                        {
                            printf("%d\n",e);
                        }
                    }
                }
            }    
        }    
    }
 return 0;    
}

技术分享

 

4看商品猜价格

 

#include<stdio.h>
#include<stdlib.h>
#include<time.h>
int main()
{    int a,b,i;
    char x;
    srand(time(NULL));
    a=rand()%100+1;
    do
    { 
    printf("请输入价格\n");
    scanf("%d",&b);
    for(i=1;i<10;i++)
    {if(b>100||b<0)
        {
        printf("错误,请重新输入\n");
        scanf("%d",&b);
        } 
     else
    {if(a==b)
        {
        printf("价格相等,商品是你的,价格就是%d元,你用了%d次。\n",a,i);
        break; 
        }
    else if(a>b)
        {
        printf("错误,你猜的太小了\n");
        scanf("%d",&b);    
        }
    else
        {
        printf("价格错误了,你猜的太大了\n");    
        scanf("%d",&b);
        }
    } 
    }
        if(i==10&&a!=b)
    {
        printf("10次机会用完了,价格是%d元。\n",a);
    }
    printf("继续吗?Y or N\n"); 
    scanf(" %c",&x);
    }
    while(x==Y||x==y);
    printf("一共猜了%d次!\n",i);
    return 0; 
} 

技术分享

附加题

  有16根火柴,可以拼出多少个形如“A+B=C”的等式,A、B、C是用火柴棍拼出的整数,且为一位数,输出该等式形式。

 注意:  1. 加号与等号各自需要两根火柴棍    2. 如果A≠B,则A+B=C与B+A=C视为不同的等式(A、B、C>=0) 3. 16根火柴棍必须全部用上

  用火柴棍拼数字0-9的拼法如图所示: 

              技术分享

#include<stdio.h>
int main()
{
    int a,b,c,A,B,C;
    for(a=0;a<=9;a++)
    for(b=0;b<=9;b++)
    for(c=0;c<=9;c++)
    {
        switch(a)
        {
            case 0:A=6;break;
            case 1:A=2;break;
            case 2:A=5;break;
            case 3:A=5;break;
            case 4:A=4;break;
            case 5:A=5;break;
            case 6:A=6;break;
            case 7:A=3;break;
            case 8:A=7;break;
            case 9:A=6;break;
        }
        switch(b)
        {
            case 0:B=6;break;
            case 1:B=2;break;
            case 2:B=5;break;
            case 3:B=5;break;
            case 4:B=4;break;
            case 5:B=5;break;
            case 6:B=6;break;
            case 7:B=3;break;
            case 8:B=7;break;
            case 9:B=6;break;
        }
        switch(c)
        {
            case 0:C=6;break;
            case 1:C=2;break;
            case 2:C=5;break;
            case 3:C=5;break;
            case 4:C=4;break;
            case 5:C=5;break;
            case 6:C=6;break;
            case 7:C=3;break;
            case 8:C=7;break;
            case 9:C=6;break;
        }
        if(c==a+b&&A+B+C==12&&a!=b)
        {
            printf("%d+%d=%d\n",a,b,c);
        }
    }
    return 0;
}

 

 技术分享

 

 二、知识点总结(主要用到的语句)

1.switch   case语句

switch(表达式)

{

      case常量表达式1

             语句 1

           。。。。

      case常量表达式n

             语句 n

       default

              语句n+1

}

case后的各常量表达式值不能相同

switch后面表达式类型一般为整型或字符型 整型:int short long unsigned 字符型 char

2for语句

for(表达式1;表达式2;表达式3)

(1)计算表达式1的值

(2)判断表达式2的值 如果它是真,执行循环体中的代码

(3)执行完一次代码后求解3

(4)重复(2)(3)直到2的表达式为假

 

三、实验总结(实验中遇到的问题及解决方法)

思路不清晰 捋一下思路

1.第三题中的三个for 可以求出4个数字中选出的不同的三个数并让他们组合起来

2附加题中 ABC是火柴棍数 用switch case语句求出ABC出现的值 然后abc是数字 必须满足a+b=c 

c==a+b&&A+B+C==12&&a!=b) 由此可以可出

3猜价格用的是do while语句  镶嵌的if 语句 分三种情况 1是猜大了 2是猜小了 3是一样 然后判断次数 

第六次作业

标签:ril   blog   png   不清晰   return   while语句   ber   技术分享   i++   

原文地址:http://www.cnblogs.com/-lyf/p/6057917.html

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