C语言:分支与循环练习题

本文展示了多个C语言编程实例,包括排序(从小到大输出三个数)、寻找最大公约数、打印3的倍数、闰年判断、素数计算、9的个数统计、分数求和、找数组中的最大值、乘法口诀表以及一个简单的猜数字游戏。这些实例涵盖了基础算法和控制结构的应用。
摘要由CSDN通过智能技术生成

从大到小输出三个数

int main()
{
    int a=0;
    int b=0;
    int c=0;
    scanf("%d%d%d",&a,&b,&c);//2 1 3
    //算法实现
    //a中放最大值
    //b次之
    //c中放最小
    if(a<b)
    {
        int tmp=a;
        a=b;
        b=tmp;
    }
    if(a<c)
    {
        int tmp=a;
        a=c;
        c=tmp;
    }
    if(b<c)
    {
        int tmp=b;
        b=c;
        c=tmp;
    }
    printf("%d %d %d",a,b,c);
return 0;
}

 打印3的倍数的数

       写一个代码打印1--100之间所有3的倍数的数字

int main()
{
    int i=0;
    for(i=0;i<=100;i++)
    {
        if(i%3==0)
            printf("%d ",i);
    }
return 0;
}

最大公约数

给定两个数,求这两个数的最大公约数

int main()
{
    int m=0;
    int n=0;
    int r=0;
    scanf("%d%d",&m,&n);
    while(m%n)
    {
        r=m%n;
        m=n;
        n=r;
    }    
    printf("%d\m",n);
return 0;
}

 打印闰年

打印1000年到2000年的闰年

int main()
{
    int year=0;
    int count=0;
    for(year=1000;year<=2000;year++)
    {
    //判断year是否为闰年
    //1.能被4整除并且不能被100整除是闰年
    //2.能被400整除是闰年
        if(year%4==0&&year%100!=0)
        {
            printf("%d ",year);
                count++;
        }
        else if(year%400==0)
        {
            printf("%d ",year);
                count++;
        }
  
    }

printf("\ncount=%d \m",count);
return 0;
}

打印素数

写一个代码打印100到200之间的素数

int main()
{
    int i=0;
    //sqrt___开平方的库函数
    for(i=100;i<=200;i++)
    {
        //判断i是否为素数
        //素数判断的规则
        //试除法
        //产生2->i-1
        int j=0;
        for(j=2;j<1;j++)
        //for(j=2;j<=sqrt(i);j++)
        {
            if(i%j==0)
            {
                break;
            }
        }
        
        if(j==i)
        //if(j>sqrt(i))
        {
            printf("%d",i);
        }
    }

    return 0;
}

 数9的个数

计算1到100,9的出现次数

int main()
{
    int i=0;    
    int count=0;
    for(i=1;i<100;i++)    
    {
        if(i%10==9)
        count++;
        if(i/10=9)
        count++;
    }

printf("sount=%d \n",count);
return 0;
}

分数求和

计算1/1-1/2+1/3-1/4+ 1/5+....1/99-1/100的值,打印出结果

int main()
{
    int i=0;
    double sum=0.0;
    int flag=1;
    for(i=1;i<=100;i++)
    {
    sum+=flag*1.0/i;
    flag=-flag;
    }
    printf("lf\n",sum);
return 0;    
}

 求最大值

求10个整数中的最大值

int main()
{
    int arr[]={1,2,3,4,5,6,7,8,9,10};
    int max=arr[0];//最大值
    int i=0;
    int sz=sizeof(arr)/sizeof(arr[0]);
    for(i=1;i<sz;i++)
    {
        if(arr[i]>max)
        {
            max=arr[i];
        }

    }
    printf("max=%d\n",max);
return 0;
}

 乘法口诀表9*9

int main()
{
    int i=0;
    //确定打印9行
    for(i=1;i<=9;i++)
    {
        //打印一行
        int j=1;    
        for()
        {
            printf("%d*%d=%-2d",i,j,i*j);//%-2d是输出两位,并且-号代表向左对齐,+号代表向右对齐
        }
    printf("\n");
    }
return 0; 
}

 猜数字游戏

1.电脑会生成一个随机数

2.猜数字

 时间戳

当前计算机的时间-计算机的起始时间(1970.1.1.0:0:0)=(xxxx)秒

#inlcude<stdlib.h>
#include<time.h>
void menu()
{
    printf("#####################\n");
    printf("####1.play#####0.exit\n");
    printf("#####################\n");
}
void game()
{
 //RAND——max32767
    //1.生成一个随机数
    int ret=0;
    //靠时间戳来设置随机数的生产起始点
    //time_t time(time_t *timer)
    //time_t
    srand(unsigned int)time(NULL));
    ret=rand()%100-1;//生成1-100随机数
    //printf("%d\n",ret)
    //2.猜数字
    while(1)
    {
    printf("请猜数字");
    scanf("%d",&guess);
    if(guess>ret)
        {
            printf("猜大了\n");    
        }
    else if(guess<ret)
        {
            printf("猜小了\n");
        }
    else 
        {
            printf("恭喜你猜对了!!!!!\n");
            break;    
        }

    }
}
int main()
{
    int input=0;
    srand(unsigned int)time(NULL));
     do
    {
        menu();
        printf("请选择:");
        scanf("%d",&input);
        switch(input)
        {
        case 1:
            game();//猜数字游戏
            break;
        case 0:
            printf("退出游戏\n");
            break;    
        default:
            printf("选择错误\n");
            break;
        }
    }while(input);  
return 0;
}

goto语句 

 C语言中提供了可以随意滥用的goto语句和标记跳转的标号

从理论上goto语句是没有必要的,实践中也没有goto语句也可以很容易的写出代码

但是某些场合下goto语句还是用的着的,最常见的用法就是终止程序在某些深度嵌套的结构的处理过程,例如一次跳出两层或多层循环

这种情况使用break是达不到目的的。他只能从最内层循环退出到上一层的循环

for(...)
    for(...)
    {
        for(...)
        {    
            if(disaster)
                goto error;
        }
    }
.......
    error
        if(disaster)
                //处理错误情况

#include<stdlib.h>
#include<string.h>
int main()
{
    char input[20]={0};
    //shutdown-s -t 60关机
    //system()__执行系统命令的

    system("shutdown -s -t 60");
again:
    printf("请注意,你的电脑将在1分钟内关机,如果输入:我是猪,就取消关机\n请输入:");
    sancf("%s",input);
    if(strcmp(input,"我是猪")==0)//比较两个字符串——strcmp()
    {
        system("shuntdown -a");
    }
    else
    {
        goto again;
    }
return 0;
}

  • 1
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值