实验6

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

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

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

  样例: 输入123,    输出 6     June

            输入12345,输出 15   ***

#include <stdio.h>
int main()
{
    int a,b,sum=0;
    printf("输入一个多位数\n");
    scanf("%d",&a);
    if(a<=9)
    {
        printf("数据错误\n");
    }
    else
    {
        while(a>0)
        {
            b=a;
            sum=sum+b%10;
            a=b/10;
        }
    }
    if(sum<=12)
    {
        switch(sum)
        {
        case 1 : printf("january\n");break;
        case 2 : printf("februay\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;
        }
    }
    else
    {
        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=0,A;
    printf("给定不超过6的正整数A:\n");
    scanf("%d",&A);
    if(A<=0||A>6)
    {
        printf("数据错误,请重新输入:\n");
        scanf("%d",&A);
    }
    else
    {
        for(a=A;a<A+4;a++)
        {
            for(b=A;b<A+4;b++)
            {
                for(c=A;c<A+4;c++)
                {
                    if(a!=b&&b!=c&&c!=a)
                    {
                        d=a*100+b*10+c*1;
                        printf("%d",d);
                        e++;
                        if(e%6==0)
                        {
                            printf("\n");
                        }
                        else if(e%6!=0)
                        {
                            printf(" ");
                        }
                    }
                }
            }
        }
    }
    return 0;
}

综合小项目:猜拳小游戏

#include<stdio.h> 
#include<stdlib.h>
#include<time.h>
int main()
{
    int a,b,c=0,d=0,e=0,f=1;
    char x;
    srand(time(NULL));
    do
    {
        a=rand()%3+1;
        printf("第%d次对决,请选择:1:石头,2:剪刀,3:布\n",f);
        scanf("%d",&b);
        if(a<0||a>3)
        {
            printf("数据错误,重新输入\n");
        }
        else if(a==b)
        {
            c++;
            f++;
            printf("平局\n");
        }
        else if(a==1&&b==2||a==2&&b==3||a==3&&b==1)
        {
            d++;
            f++;
            printf("你输了\n");
        }
        else if(a==1&&b==3||a==2&&b==1||a==3&&b==2)
        {
            e++;
            f++;
            printf("你赢了\n");
        }
        printf("是否继续下一轮?Y(y)orN(n)\n");
        scanf(" %c",&x);
    }
    while(x=='Y'||x=='y');
    printf("对决次数%d,平局%d次,电脑得分%d,用户得分%d\n",f-1,c,d,e);
    return 0;
}

 

二:知识点总结

顺序结构

1:使用变量要先声明后使用,格式化输入函数scanf,由%和格式字符组成,对变量取地址符

2:scanf函数中的“格式控制串”,后面应当是变量地址,而不是变量名

3:赋值运算符不表示相等

4:在程序语句中使用较为复杂的语句,尽量使用括号来保证准确的计算顺序

5:实型数据中的  float类型的用%f,double 用%lf

选择结构

1:if..else语句,if...else if,在判断时还要注意运算符的优先级,

2:实现if  else的正确匹配要加大括号,单独出现时叫做空语句,程序执行不产生任何动作  if()后面不加;

3:switch  case  break语句误丢break,case后面跟的一定是常量,case后面误丢空格

4:字符型数据要用单引号括起来,字符型数据的输入和输出,putchar()输出函数,getchar()输入函数

5:随机函数rand(),利用函数time()获得系统时间,用系统时间做随机种子

循环结构

1:for语句,while语句,do  while语句

2:for(赋初值;循环条件;循环变量增值)

3:求和时sum的初始值为0,求乘时sum的初值为1

4:无限循环 while(1)

                 {

                      循环体

                 }

5:break语句结束整个循环过程

6:continue语句只能用于循环语句

7:学会使用while((ch=getchar())!='\n')

三:实验总结

1:sum的值搞错误,未给sum赋初值

2:do...while语句的循环条件没有搞清楚,导致运行出错

 

posted @ 2016-11-13 08:59  杨朝鸽  阅读(266)  评论(1编辑  收藏  举报