c语言学习for 循环

在c语言中,for语句的使用最为灵活,它完全可以取代while 语句。它的一般形式为:

for(表达式1;表达式2;表达式3)
{
语句;
}

它的执行过程如下:
(1)先求解表达式1。
(2)求解表达式2,若其值为真(成立),则执行for语句中指定的内嵌语句(for语句后大括号中的内容),然后执行下面第3步;若其值为假(即不成立),则结束循环,转到第5步。
(3)求解表达式3。
(4)转回上面执行第2步。
(5)循环结束,顺序执行for语句外的内容。

for(循环变量赋初值;循环条件;循环变量增量)
{
语句;
}

循环变量赋初值总是一个赋值语句,它用来给循环变量赋初值;
循环条件是一个关系表达式,它决定什么时候退出循环;
循环变量增量,定义循环控制变量每循环一次后按什么方式变化。
这三部分之间用分号(;)分隔开。

for(i=1;i<=100;i++)
{
    sum=sum+i;
}

先给i赋初值1,判断i是否小于等于100,若是则执行语句,之后值增加1。再重新判断,直到条件为假,即i>100时,结束循环。

注意:
1)for循环括号中的3个表达式都可省略,但;不能缺少
2)省略表达式1,表示不对循环控制变量赋初值。
3)省略表达式2,则不做其它处理时变成为死循环。
4)省略表达式3,则不对循环控制变量进行操作,这时可在语句体中加入修改循环控制变量的语句。
5)省略表达式1和表达式3
例:
for(;i<=100;)
{
sum=sum+i;
i++;
}

练习:用for循环打印1~10的和。

#include<stdio.h>
int main()
{
    int i,s=0;
    for(i=1;i<=10;i++)
    {
        s=s+i;
    }
    printf("%d",s);
    return 0;
}

用for循环求任意数字以内的奇数和

# include<stdio.h>
int main()
{
    int i,s=0,n;
    printf("请输入任意数字求其奇数和:"); 
    scanf("%d",&n);
    for(i=1;i<=n;i=i+2)
    {
        s=s+i;
    }
    printf("%d以内的奇数和为:%d",n,s);
    return 0;
}

水仙花数
153=13+53+33=111+555+333 水仙花数是指一个 3 位数,它的每个位上的数字的 3次幂之和等于它本身

# include<stdio.h>
int main()
{
    int i,indiv,ten,hundred;
    for(i=100;i<1000 ;i++)
    {
        indiv=i%10;
        ten=i/10%10;
        hundred=i/100;
        if(i==indiv*indiv*indiv+ten*ten*ten+
        hundred*hundred*hundred)
        printf("%d ",i);
    }
    return 0;
}

for循环的嵌套

for循环打印图形
打印*横向20竖向10个


image.png
//打印横向20个*纵向10行*
#include <stdio.h>
int main()
{
    int i,j;
    for(j=1;j<=10;j++)
    {
        for(i=1;i<=20;i++)
        {
            printf("*");
        }
        printf("\n");
        
    }
    return 0;
}

输出每位数字各不相同的3位数字
①第一种方法

# include<stdio.h>
int main()
{
    int i,indiv,ten,hundred,n=0;
    for(i=100;i<=999;i++)
    {
        indiv=i%10;
        ten=i/10%10;
        hundred=i/100;
        if(indiv != ten)
        {
            if(indiv != hundred)
            {
                if(ten != hundred)
                {
                    n=n+1;
                    printf("%d ",i);
                }
            }
        }
    }
    printf("一共有%d个数",n);
    return 0;
}

②第二种方法


image.png
# include<stdio.h>
int main()
{
    int i,j,k,n=0;
    for(i=0;i<=9;i++)
    {
        for(j=0;j<=9;j++)
        {
            if(i!=j)
            {
                for(k=1;k<=9;k++)
                {
                    if(i!=k && j != k)
                    {
                        n=n+1; 
                        printf("%d ",(i+10*j+100*k));
                    }
                }
            }
        }
    }
    printf("一共有%d个数",n); 
    return 0;
}

猴子第一天摘了若干桃子,第一天吃了一半多一个,第二天吃了剩下的一半多一个,···,第十天剩下一个桃子,求猴子摘了多少桃子?
十:1
九:(1+1)2=4
八:(4+1)
2=10
七:(10+1)2=22
n:n=(n+1)
2

#include<stdio.h>
int main()
{
    int i,s=1;
    for(i=9;i>=1;i--)
    {
        
        s=(s+1)*2;
    }
    printf("共有桃子%d个",s);
    return 0;
} 

张丘建《算经》
百钱买百鸡
鸡翁一钱五
鸡母一钱三
鸡雉三钱一
100钱,买多少鸡?

#include<stdio.h>
int main()
{
    int i,j,k,n;
    for(i=0;i<=20;i++)
    {
        for(j=0;j<=33;j++)
        {
            for(k=0;k<=99;k=k+3)
            {
                if((100==(5*i+3*j+k/3))&&(100==i+j+k))
                {
                printf("鸡翁:%d,鸡母:%d,鸡雉:%d\n",i,j,k);
                }
            }
        }
    } 
    return 0;
}

鸡兔同笼:168脚,70头

//168腿,70头
#include<stdio.h>
int main()
{
    int i,n;
    for(i=1;i<=70;i++)
    {
            if(2*i+4*(70-i)==168)
            {
                printf("鸡:%d,兔:%d\n",i,70-i);
            }
    }
    return 0;
}
 

for循环打印九九乘法表

九九乘法表.png
//九九乘法表
#include<stdio.h>
int main()
{
    int i,j;
    for(i=1;i<=9;i++)
    {
        for(j=1;j<=i;j++)
        {
            printf("%d*%d=%d  ",j,i,i*j);
        }
        printf("\n");
    }
    return 0;
} 

打印等腰三角形

//for循环打印符号 
//   *
//  *** 
// ***** 
//*******
#include<stdio.h>
int main()
{
    int i,j,k,n;
    printf("请输入打印的行数:"); 
    scanf("%d",&n);
    for(i=1;i<=n;i=i+1)
    {
        for(k=1;k<=n-i;k++ )
        {
            printf(" ");
        }
        
        for(j=1;j<=2*i-1;j++)
        {
            printf("*");
        } 
        printf("\n");
    }
    return 0;
    
} 
 

显示直角在左下方的任意边长等腰直角三角形

#include<stdio.h>
int main()
{
    int i,j,len;
    printf("边长:");
    scanf("%d",&len);  
    for(i = 1;i <= len;i++)
    {
        for(j = 1;j <= i;j++)
           printf("*");
        printf("\n");
    }
    
    return 0;
 }

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 212,686评论 6 492
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 90,668评论 3 385
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 158,160评论 0 348
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 56,736评论 1 284
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 65,847评论 6 386
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 50,043评论 1 291
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 39,129评论 3 410
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 37,872评论 0 268
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 44,318评论 1 303
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 36,645评论 2 327
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 38,777评论 1 341
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 34,470评论 4 333
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 40,126评论 3 317
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 30,861评论 0 21
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 32,095评论 1 267
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 46,589评论 2 362
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 43,687评论 2 351