第六次作业

一、实验内容   

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

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

 

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

#include<stdio.h>
int main()
{
    int a,b=0,sum=0;
    printf("输入任意一个多位的数字:\n");
    scanf("%d",&a);
    while(a>0)
    {
        b=a%10;
        a=a/10;
        sum=sum+b;
    }
        if(sum==1)
        {
            printf("Janurary\n");
        }
        else if(sum==2)
        {
                printf("February\n");
        }
        else if(sum==3)
        {
            printf("March\n");
        }
        else if(sum==4)
        {
            printf("April\n");
        }
        else if(sum==5)
        {
            printf("May\n");
        }
        else if(sum==6)
        {
            printf("June\n");
        }
        else if(sum==7)
        {
            printf("July\n");
        }
        else if(sum==8)
        {
            printf("August\n");
        } 
        else if(sum==9)
        {
            printf("September\n");
        } 
        else if(sum==10)
        {
            printf("October\n");    
        } 
        else if(sum==11)
        {
            printf("November\n");    
        }
        else if(sum==12)
        {
            printf("December\n");
        }
        else
        {
            printf("***\n");
        }

    return 0;    
}

 

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

#include<stdio.h>
int main()
{
int d=0,x,a,b,c,e,y;
printf("输入1—6的整数\n");
scanf("%d",&x);
if((x<1)||(x>6))
{
printf("error");
}
else
{
y=x+3;
for(a=x;a<=y;a++)
for(b=x;b<=y;b++)
for(c=x;c<=y;c++)
if(a==b||b==c||a==c)
{
continue;
 } 
 else if(a!=b&&b!=c&&a!=c) 
{
e=a*100+b*10+c;
d=d+1;
printf("%d",e);
if(d%6==0)
{
printf("\n");
}
else
{
printf(" " );
}
}

}
return 0;    
} 

4.猜拳游戏。

#include<stdio.h>
#include<stdlib.h>
#include<time.h>
int main()
{
    int number=1,x,machine,win=0,lose=0,plain=0;
    char a;
    srand(time(NULL));
    do{
        machine=rand()%3+1;
        printf("第%d轮对决\n",number);
        printf("该你出拳了,请选择:1、石头,2、剪刀,3、布\n");
        scanf("%d",&x);
        if((x!=1)&&(x!=2)&&(x!=3))
        {
            printf("数据错误,请重新输入!\n"); 
        }
        else if(x==machine)
        {
            plain++;
            number++;
            printf("平局 加油啊!\n");    
        }
        else if(x==1&&machine==2)
        {
            win++;
            number++;
            printf("电脑出的剪刀 你出的石头\n运气真好 你赢了!\n");
        }
        else if(x==2&&machine==3)
        {
            win++;
            number++;
            printf("电脑出的布 你出的剪刀\n运气真好 你赢了!\n");    
        }
        else if(x==3&&machine==1)
        {
            win++;
            number++;
            printf("电脑出的石头 你出的布\n运气真好 你赢了!\n");    
        }
        else if(x==1&&machine==3)
        {
            lose++;
            number++;
            printf("电脑出的布 你出的石头\n你输了 /(ㄒoㄒ)/~~ \n");      
        } 
        else if(x==2&&machine==1)
        {
            lose++;
            number++;
            printf("电脑出的石头 你出的剪刀\n你输了 /(ㄒoㄒ)/~~\n"); 
        }
        else if(x==3&&machine==2)
        {
            lose++;
            number++;
            printf("电脑出的剪刀 你出的布\n你输了 /(ㄒoㄒ)/~~\n");     
        }
        printf("继续下一轮吗?Y(y)or N(n)\n");
        scanf(" %c",&a);
    } while(a=='y'||a=='Y');
    printf("对决次数:%d,平局%d次,电脑得分%d,你得分%d",number,plain,lose,win);
    return 0;        
} 

 

  二、知识点总结

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

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

4.增量运算符遵循从右到左的运算法则,单独使用时,前缀形式和后缀形式的结果相同;但是增量运算符作为表达式的一部分时,前缀形式和后缀形式的执行过程不同。

 

三、实验总结:

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

2.注意赋值和判断等于的区别。

3.当循环为死循环用break,因为break跳出整个循环,而continue跳出本层循环。

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

5.循环语句中循环体复合语句时需要加括号循环开始前,需要将计数器变量和变量和乘积变量初始化。

posted @ 2016-11-12 13:10  山中人兮芳杜若9804  阅读(500)  评论(1编辑  收藏  举报