C语言 第五章 循环结构练习

一、计算15+16+17 …98+99的和 for实现

#include "stdio.h"
void main()
{
    //15+16+17 …98+99
    int i,s=0;
    for(i=15;i<=99;i++)
    {
        s=s+i;
    }
    printf("%d \n",s);
}

二、计算15+16+17 …98+99的和 while实现

/* Note:Your choice is C IDE */
#include "stdio.h"
void main()
{
    int i=15,s=0;
    while(i<=99)
    {
        s=s+i;
        i++;
    }
    printf("%d",s);
}

三、计算15-99之间不能被5或9整除的数之和

#include "stdio.h"
void main()
{
    //15+16+17 …98+99
    //不能被5或9整除的数之和
    int i,s=0;
    for(i=15;i<=99;i++)
    {
        if(!(i%5==0||i%9==0))
        {
            s=s+i;
        }
        
    }
    printf("%d \n",s);
}

四、计算1 1 2 3 5 8 13 21…第20位的数是多少?

#include "stdio.h"
void main()
{
    long x=1,y=1,z,n;
    for(n=3;n<=40;n++)
    {
        z=y;
        y=x+y;
        x=z;
        printf("%d \t",y);
    }
}

 五、循环计算

/* Note:Your choice is C IDE */
#include "stdio.h"
void main()
{
   int a,b;
   char c,z;
   
   do{
        printf("开始运算\n请输入第1个数:");
       scanf("%d",&a); 
       fflush(stdin);
       
       printf("请输入运算符:");
       scanf("%c",&c); 
       fflush(stdin);
       
       printf("请输入第2个数:");
       scanf("%d",&b);
       fflush(stdin); 
       
       if(c=='+'){
               printf("%d%c%d=%d",a,c,b,a+b);
       }
       else if(c=='-'){
               printf("%d%c%d=%d",a,c,b,a-b);
       }
       else if(c=='*'){
               printf("%d%c%d=%d",a,c,b,a*b);
       }
       else if(c=='/'){
           printf("%d%c%d=%d",a,c,b,a/b);
       }
       else
       {
           printf("输入符号错误");
       }
       
        printf("\n\n您是否继续运算(y/n):");
        scanf("%c",&z);
        fflush(stdin);        
   }while(z=='y');
   
   printf("欢迎下次光临!");
}

六、统计输入的数字与字母个数

/* Note:Your choice is C IDE */
#include "stdio.h"
void main()
{
    char str[100];
    int i,s=0,z=0;
    
    printf("请输入字符串:");
    scanf("%[^\n]s",str);  //abc123
    //printf("%d",strlen(str));  //获得字符串长度
    
    for(i=0;i<strlen(str);i++)
    {
        printf("%c",str[i]);  //取出对应下标的字符
        if((str[i]>='a'&&str[i]<='z')||(str[i]>='A'&&str[i]<='Z')){
          z++;
        }else if(str[i]>='0'&&str[i]<='9')
        {
          s++;    
        }
    }
    
    
    printf("\n字母:%d",z);
    printf("\n数字:%d",s);
}
#include "stdio.h"
void main()
{
    int i,z=0,s=0,t=0;
    char str[100];
    
    scanf("%[^\n]s",str);//abc 123
    
    for(i=0;i<strlen(str);i++)
    {
        if((str[i]>='a'&&str[i]<='z')||(str[i]>='A'&&str[i]<='Z'))
        {
            z++;
            printf("\n字母:%c",str[i]);
        }
        else if(str[i]>='0'&&str[i]<='9')
        {
            s++;
            printf("\n数字:%c",str[i]);
        }
        else
        {
            t++;
            printf("\n符号:%c",str[i]);
        }
    }
    
    printf("\n字母个数:%d",z);
    printf("\n数字个数:%d",s);
    printf("\n符号个数:%d",t);
       
    //strlen(str) 获得字符串长度
}

七、输入输出函数

原型:extern int getchar(void);
功能:读键
说明:从键盘上读取一个键,并返回该键的键值
        getch是到getchar的宏定义 
#include "stdio.h"
void main()
{
    printf("%c \n",getchar());  //字符
    
    fflush(stdin);
    
    printf("%d \n",getchar());  //整型
}
 原型:extern void putchar(char c);
 功能:在屏幕上显示字符c
 说明:字符输出在屏幕的当前位置。

putchar(65);  //输出 A

putchar('X'); //输出X

#include "stdio.h"
void main()
{
    do
    {
        printf("告诉你1+1=2\n");
        
        printf("还想看一遍吗?(y/n):");
        fflush(stdin);
    }while(getchar()=='y');
}

八、计算某一天在一年中的位置,比如2016年1月27号,这一天是这一年的第27天,2016年2月27号,第58天。

/* Note:Your choice is C IDE */
#include "stdio.h"
void main()
{
    int year,month,day,count=0,i;  //年,月,日
    printf("请输入年月日(2016-10-01):");
    scanf("%d-%d-%d",&year,&month,&day);
    
    for(i=1;i<month;i++)
    {
        if(i==1||i==3||i==5||i==7||i==8||i==10||i==12)
        {
            printf("31\n");
            count+=31;
        }
        else if(i==4||i==6||i==9||i==11)
        {
            printf("30\n");
            count+=30;
        }
        else if(i==2)
        {
            //是否为闰年 (年被4整除且不被100整除,或被400整除)
            if((year%4==0&&year%100!=0)||year%400==0)
            {
                printf("29\n");
                count+=29;
            }
            else
            {
                printf("28\n");
                count+=28;
            }
        }
        else
        {
            printf("月份错误 ");
        }
    }
    
    printf("%d \n",day);
    count+=day;
    printf("第%d天",count);
       
}

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

发表于

我来说两句

0 条评论
登录 后参与评论

相关文章

来自专栏xiaoxi666的专栏

二分查找变种

该算法有很多版本,这里给出java中实现比较好的一种方式。其中,>>>为无符号右移。

582
来自专栏C语言及其他语言

【优秀题解】判断素数问题的题解与代码

题目描述 写一个判断素数的函数,在主函数输入一个整数,输出是否是素数的消息。 输入 一个数 输出 如果是素数输出prime 如果不是输出not prime 原题...

2606
来自专栏伪君子的梦呓

题解 ~ 输出三个数中的最大值 ~ C++ 做法

1425
来自专栏轻扬小栈

[半zz]迅雷笔试题

1323
来自专栏源哥的专栏

对身份证号码合法性的验证

对于身份证号码,经常有人只是判断身份证的位数是否为15或18位,是否全部都是数字,这种判断是错误的,因为18位身份证号码允许最后一位为X,不过必须根据特定的算法...

583
来自专栏灯塔大数据

技术 | Python从零开始系列连载(八)

导读 上一期学习了Python特色数据类型(列表)上半节,相信大家都已经熟悉啦,我们这一期就来学习Python特色数据类型(列表)下半节吧! 列表切片 列表切片...

3376
来自专栏程序员互动联盟

【编程基础】C语言逻辑运算符

C语言关系运算符和逻辑运算符几乎无所不在,比如在循环语句、分支语句、逻辑判断等语句块中都会出现。学好这部分对学好C语言具有重要作用。 C语言中有一共有如下6中...

3406
来自专栏还债之路

每日一题--统计字符串出现的次数

使用awk统计出来指定字符串中重复出现的字符并重复出现了几次,现在只考虑有数字和字母,先区分大小写 eg: aaabbc------> a 重复出现3次,b重复...

984
来自专栏和蔼的张星的图像处理专栏

212. 空格替换先扩充,从后往前处理

设计一种方法,将一个字符串中的所有空格替换成 %20 。你可以假设该字符串有足够的空间来加入新的字符,且你得到的是“真实的”字符长度。 你的程序还需要返回被替...

522
来自专栏Django Scrapy

python3 解码base64遇到的问题与解决

错误代码:binascii.Error: Incorrect padding 解决方法 在解码前使用这个方法 if len(message) % 4: ...

3299

扫码关注云+社区