电商专业学习嵌入式软件开发第六十三天

  • C基础第一天

今天转到新班1703班,前面的课程没有听,今天第一天讲的是循环,最后还给我们讲了自幂数和斐波那契数列,最后讲的这俩到现在都迷糊呢。循环虽然听了好多遍,但是做起题目来就不行了,今天记的代码都是在课堂上没有写出来的,而且好多都是之前做过的。这些要重点看一下了。

//回文数
#include <stdio.h>
int main(int argc,char *argv[])
{
    printf("请输入一个数:");
    int a,i,x,num;
    scanf("%d",&x);
    for(i = 100;i <= x;i++)
    {
        num = i;
        a = 0;
        while(num > 0)
        {
            a=a*10+num%10;
            num /= 10;
        }
        if(a == i)
        {
            printf("%d\n",a);
        }
    }
    return 0;
//鸡兔同笼:35头,94足
#include <stdio.h>
int main(int argc,char *argv[])
{
    int i,j;
    for(i = 0;i <= 35;i++)
    {
        for(j = 0;j <= 35;j++)
        {
            if(i + j == 35 && 2*i + 4*j == 94)
            printf("鸡 = %d,兔 = %d\n",i,j);
        }
    }
    putchar('\n');
    return 0;
}
//逆序输出
#include <stdio.h>
int main(int argc,char *argv[])
{
    int i,a = 0;
    printf("请输入一个4位数:");
    scanf("%d",&i);//1234
    while(i > 0)//123,12,1
    {
        a = a*10+i%10;//a = 10*0+4;a = 4*10+3 = 43;a = 43*10+2 = 432;s = 432*10+1 = 4321;
        i/=10;//123,12,1,0
    }
    
    printf("%d\n",a);
    return 0;
}
//斐波那契数列
#if 0
#include <stdio.h>
int main(int argc,char *argv[])
{
    int ax = 1,ay = 1,an,n,num;//ax,ay代表前两项,an代表通项
    printf("请输入最大范围:");
    scanf("%d",&num);
    printf("a1 = %d\na2 = %d\n",ax,ay);
    for(n = 3;n <= num;n++)
    {
        an = ax + ay;//a3 = a1+a1 = 2;
        printf("a%d = %d\n",n,an);
        ax = ay;//a1 = a2
        ay = an;//a2 = a3
    }
    putchar('\n');
    return 0;
}
#else
#include <stdio.h>
int main(int argc,char *argv[])
{
    int ax = 1,ay = 1,an,n,num,sum = 0;//ax,ay代表前两项,an代表通项
    printf("请输入最大范围:");
    scanf("%d",&num);
    printf("a1 = %d\na2 = %d\n",ax,ay);
    sum = ax+ay;
    for(n = 3;n <= num;n++)
    {
        an = ax + ay;//a3 = a1+a1 = 2;
        printf("a%d = %d\n",n,an);
        sum += an;
        ax = ay;//a1 = a2
        ay = an;//a2 = a3
    }
    printf("%d\n",sum);
    return 0;
}
#endif
//只能被1和自身整除的数叫做质数(素数)
# if 0
#include <stdio.h>
int main(int argc,char *argv[])
{
    int a,num,j;
    printf("请输入最大范围:");
    scanf("%d",&num);
    for(a = 0;a < num;a++)
    {
        for(j = 3;j <= a;j++)
        {
            if(a%j == 0)
                break;//跳出所有循环
        }
        if(j == a)
            printf("%d ",a);
    }
    putchar('\n');

    return 0;
}
#else
#include <stdio.h>
#include <math.h>
int main(int argc,char *argv[])
{
    int a,num,j;
    printf("请输入最大范围:");
    scanf("%d",&num);
    for(a = 1000;a < num;a++)
    {
        for(j = 2;j < sqrt(a);j++)
        {
            if(a%j == 0)
                break;//跳出所有循环
        }
        if(j >= sqrt(a))
            printf("%d ",a);
    }
    putchar('\n');

    return 0;
}
#endif
//打印三角形
#include <stdio.h>
int main(int argc,char *argv[])
{
    int i,j;
    for(i = 0;i < 10;i++)
    {
        for(j = 1;j <= i;j++)
        {
            printf("*");
        }
        printf("\n");
    }
    return 0;
}

if语句:构成分支结构,他会根据给定的条件进行判断,以决定执行哪个分支结构
if语句有三种形式:
1.基本形式if
if(表达式)语句
如果表达式为真则执行其后的语句,否则不执行

if-else()形式
if(表达式)
语句1
else
语句2
如果表达式的值为真,则执行语句1,否则执行语句2

if-else-if形式
前两种一般用于两个分支情况,当有多个分支时使用这种方式

if(表达式1)
语句1
else if(表达式2)
语句2
else if(表达式3)
语句3
............
else if(表达式n)
语句n
else
语句m

依次判断表达式的值,当出现某个值为真时,则执行对应语句,然后跳到整个if语句之外,继续执行其他程序,如果所有的语句都为假则执行m语句,然后继续执行后面的语句

作业:输入几就打印周几,输入数字打印月份

注意:
1.if语句中if之后都为表达式,通常为逻辑表达式或关系表达式,但是也可以为其他表达式,如赋值表达式或变量
2.if语句中条件判断表达式必须用括号"()"括起来
3.if语句中,当执行语句为单语句时可以不加括号,当含有多条语句时必须加"{}",并且括号后没有分号

if语句的嵌套
当if语句中的执行语句又是if语句时,构成if语句的嵌套
if(表达式)
if 语句
或者
if(表达式)
if(语句)
else
if(语句)

为避免二义性C语言规定,else总是与它前面最近的if配对

条件运算符和条件表达式"?:"
一般形式:表达式1?表达式2:表达式3
如果表达式1的值为真,则表达式2的值为整个表达式的值,否则表达式3的值为整个表达式的值
max = a > b ? a : b

switch语句,用于多分支选择
一般形式:
switch(表达式)
{
case 常量表达式1:语句1;
break;
case 常量表达式2:语句2;
break;
case 常量表达式3:语句3;
break;
.............
case 常量表达式n:语句n;
break;
default:语句n+1;
break;
}
计算表达式的值,逐个与其后的常量表达式进行比较,当表达式与某个常量表达式的值相等时,几执行其后的语句,然后不再进行判断,执行后面的所有case语句,如果表达式的值都不相同,则执行default中的语句

C语言提供了break语句,用来跳出switch语句

注意:
1.case语句之后的常量表达式的值都不能相同,否则会报错
2.case中允许有多个语句,可以不用花括号
3.default可以省略
*********************循环结构***********************
循环结构的特点:在给定条件成立时,反复执行某段程序,知道条件不成立为止,给定的条件称为循环条件,反复执行的程序段称为循环体

循环分类:while循环,do-while循环,for循环
while语句的一般形式:
while(表达式)语句:表达式为循环条件,语句为循环体
while语句的含义是计算表达式的值,如果表达式的值为真则执行循环体
(1)while语句的表达式一般是关系表达式或逻辑表达式,只要表达式为真就可继续循环
(2)循环体含有一个以上的语句必须加花括号
作业:打印等腰三角形

do-while语句
一般形式:
do
语句
while(表达式);
与while循环不同的是该循环先执行循环体,后判断表达式是否为真,该循环至少执行一次

for循环
for语句可以完全替代while语句
一般形式:
for(表达式1;表达式2;表达式3)
执行过程:
1,先求表达式1,
2,求解表达式2,如果为真,则执行for 语句中指定的 内嵌语句,然后执行下一步,若其为假,则循环结束。
3,求解表达式3
4,转回第二步继续执行
5,循环结束,执行下一段代码。

交换两个数:
不用第三个数的时候:
a = 3;b = 5;
a = a + b;
b = a - b;
用到第三个数的时候:
t = a;a = b;b = t;
a = a - b;

自幂数:一个数有几位就用每一位上的数字乘上几次方,最后等于这个数
如:123 = 13+23+3^3,12345 = 15+25+35+45+5^5

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

推荐阅读更多精彩内容