首页 > 编程语言 >顺序程序设计

顺序程序设计

时间:2023-07-16 22:57:11浏览次数:39  
标签:include int void break 顺序程序 printf 设计 main

顺序程序设计


1. 条件表达式

条件表达式结合方式自右向左

2. Switch语句

#include <stdio.h>

void main(){
    int a;
    printf("input integer number: ");
    scanf("%d", &a);
    switch (a) {
        case 1: printf("Monday\n"); 
            break ;
        case 2: printf("Tuesday\n");
            break;
        case 3: printf("Wednesday\n");
            break;
        case 4: printf("Thursday\n");
            break;
        case 5: printf("Friday\n");
            break;
        case 6: printf("Saturday\n");
            break;
        case 7: printf("Sunday\n");
            break;
        // 这个可以没有.顺序也没有要求     
        default: printf("error\n");  
    }
}

3. while语句

// 统计从键盘输入一行字符的个数
#include <stdio.h>
void main(){
    int n = 0;
    printf("input a stirng:\n");
    // 获取输入字符.
    while (getchar() != '\n'){
        n++;
    }
    printf("%d", n);
}

// 求一到一百的和
#inculde <stdio.h>
void main(){
    int i, sum = 0;
    i = 1;
    while (i <= 100){
        // 累加
        sum = sum + i;
        i++;
    }
    printf("%d\n", sum);
}

4. goto语句

// 求一到一百的和
#include <stdio.h>

void mian(){
    int i, sum = 0;
    i = 1;
    // goto语句和loop构成循环
    loop: if (i <= 100){
        sum = sum + i;
        i++;
        goto loop;
    }
    printf("%d\n", sum);
}

5. for循环

// 引入字符串的方式
char *s = "Hello world!";
char v1[] = "Hello world!";
char *p1 = v1;  // 第一个字符的内存地址

// 统计从键盘输入一行字符的个数
#include <stdio.h>

void main(){
    int n = 0;
    printf("input a stirng:\n");
    // 获取输入字符.
    char *s = "Hello world";  // 可以表示一个字符串
    while (getchar() != '\n'){  // 当输入回车时结束循环
        n++;
    }
    printf("%d", n);
}

for循环基本格式:

for循环注意事项:


for循环例题:

  1. 输出图形

    **
    ***......

// 输出图形
// * 
// **
// ......
# include <stido.h>

void main(){
    int i, j;
    for (i=1; i<7; i++){  // 循环的嵌套
        for (j=1; j<=i; j++){
             putchar("*");
        }
    }
    printf("\n");
}
  1. 题目: 有1.2.3.4个数字, 能组成多少个互不相同且无重复的三位数?都是多少?

    程序分析: 可填在百位. 十位. 个位的数字都是1. 2. 3. 4. 组成的所有排序去掉不满足条件的排序.

    #include <stdio.h>
    void main(){
        int i, j, k;
        printf("\n");
        for (i=1; j<5; j++){
            for (j=1; j<5; j++){
                for (k=1; k<5; k++){
                    if (i!=k && i!=j && j!=k)  // 判断是否相等
                        printf("%d, %d, %d\n", i, j, k);
                }
            }
        }
    }
    

6. break & continue

break和continue只能在循环中. 起到跳出循环的作用

题目1: 键盘中输入Esc退出循环. 输入Enter则不做任何处理. 继续输入下一个字符.

#include <conio.h>  // 后边getch和putch需要
void main(){
 char ch;
 for ( ; ; ){  // while(1)
     ch = getch();
     if (ch == 27);  // Esc ASCII码为27
     	break;  // 退出循环
     if (ch == 13);  // Enter ASCII码为13
     	continue;  // 跳出当前字符输出语句
     putch(ch);  // 输出字符
 }
 getch();  // 让程序停一下.敲任意键继续
}

题目2: 把100~200之间不能被3整除的数输出

void main(){
 int n;
 for (n=100; n<=200; n++){
     if (n%3 == 0){
         continue;  // 跳出当前循环
     printf("%d\n", n);
     }
 }
}

题目3: 求pi = 4(1 - 1/3 + 1/5 - 1/7 + 1/9 -......)

#include <stdio.h>
#include <dtdio.h>

void main(){
 int s; float n, t, pi;
 t = 1; 
 pi = 0;
 n = 1.0;
 s = 1;
 while (fabs(t) > 1e-6){  // fabs()判断精度
     pi = pi + t;
     n = n + 2;
     s = -s;
     t = s/n;
 }
 pi = pi * 4;
printf("pi=%10.6\n", pi);  // 宽度10 精度6
}

题目4: 求Fibonacci数列

#include <stdio.h>

void main(){
 long int f1, f2;
 f1 = 1; f2 = 1;
 for (i=1; i<=20; i++){
     printf("%12ld %12ld", f1, f2);
     if (i%2 == 0){
         printf("\n");  // 此步骤只是为了多余
     }
     f1 = f1 + f2;
     f2 = f2 + f1;
 }
}

题目5: 判断输入的是否为素数

#include <stdio.h>
#include <math.h>

void main(){
 int m, i, k;
 scanf("%d", &m);
 k = sqrt(m);  // 当m=26 -> k=5
 printf("%d", k);
 for (i = 2; i < k; i++){
     if (m%i == 0){
    		break;
 	}
 }
 if (i > k){
     printf("%d is a prime number\n", m);
 }else{
     printf("%d is not a prime number\n", m);
 }
}

题目6: 求100~200之间的素数

#include <stdio.h>
#include <math.h>

void main() {
 int m, k, i;
 // 从100~200中单数循环
 for (m = 101; m <= 200; m = m + 2) {
     k = sqrt(m);
     for (i = 2; i <= k; i++) {
         if (m % i == 0)
             break;
     }
     // 判断是否为素数
     if (i >= k + 1) {
         printf("%d\n", m);
     }
 }
 printf("\n");
}

标签:include,int,void,break,顺序程序,printf,设计,main
From: https://www.cnblogs.com/huxiaofeng1029/p/17558768.html

相关文章

  • 小设计,大作用——防腐层的妙用
    前言最近在学习了解领域驱动模型DDD相关的内容,但是由于没有实际的项目支撑,所以大都是停留在一些理论层面。我发现这里面的一些设计思想还是非常有实用价值的,可以直接应用于你目前的项目中,今天我就来谈谈防腐层的妙用。一个简单的例子大家在做项目中是否有过这样的经历,你的项目......
  • 【Implementation】Vivado增量编译:加速FPGA设计实现
    一、Vivado增量编译概述Vivado增量编译(IncrementalImplementation),是指针对设计中已经完成的部分,仅编译修改的部分,并在这些部分重新生成比特流,以加速设计实现的过程。简单来说,就是只更新那些被修改过的代码,而不是每次都对整个设计进行重新编译。与传统的完全重新编译相比,Vivado......
  • 微服务或分布式场景,如何设计和使用分布式锁
    光谈论方式的话,太多了,数据库、jvm内存、redis、zookeeper都可以,最常用的是基于redis实现的redission框架 核心原理众多博客讲的很清楚,面试说个大概应该没问题了第一点,用的reids的setex命令,因为这个命令是原子操作,不会在设置锁的过程中出现意外第二点,锁过期问题,redission的解......
  • 设计模式-法则大全
    SOLID原则:单一职责原则SRP:一个类只负责完成一个职责或功能;要设计粒度小、功能单一的类开闭原则OCP:对扩展开放、对修改关闭;在已有基础上扩展代码(新增模块、类、方法等),而非修改已有代码(修改模块、类、方法等);里式替换LSP:父类定义了函数的“约定”(或者协议),那子类可以改变函数的内......
  • MCU芯片架构设计
    目录1.应用场景主要是I2C\UART\SPI协议2.Cortex-M3MCU成本与工艺选型按照晶圆进行收费,28nm,12寸晶圆,400万美金晶圆是圆形的,die是方形的,会存在浪费productivity-大约是理论数量(晶圆总面积/裸片面积)的50%-60%yield-生产工艺问题导致在晶圆上切出的die存在问题,存在......
  • 数据库设计 垂直分库 垂直分表
    分析师和研报的数据仅进行了垂直分库,分析师库和研报数据库。 研报信息还进行了垂直分表,研报主题,标题概要,打标的标签,第一署名,提交人等,研报主体内容和和研报相关的机构打分等非主题信息进行垂直分表        ......
  • 芯片设计全流程
    芯片设计全流程(包括每个流程需要用到的工具以及需要参与的工作人员)  设计rtl设计工程师要懂低功耗设计方法,跨时钟域的解决方案,面积,功耗,逻辑综合验证检验rtl级的HDL设计是否实现了Spec需要的功能等;验证工程师要懂设计,能看懂rtl,能够理解设计的各种方法;作为soc验证......
  • Spartacus Product List Page ProductSearchPage Observable 对象的设计明细
    源代码如下:readonlymodel$:Observable<ProductSearchPage>=using(()=>this.searchByRouting$.subscribe(),()=>this.searchResults$).pipe(shareReplay({bufferSize:1,refCount:true}));上面这段代码是基于Angular框架和RxJS库的,RxJS是一个用于处理......
  • 02-设计模式-观察者模式
    观察者模式涉及的对象:观察者接口、观察者接口的实现类被观察者接口、被观察者接口的实现类1、观察者接口-代码:publicinterfaceObserver{voidupdate(Stringmsg);}2、观察者接口的实现类-代码:publicclassObserverImplimplementsObserver{privateSt......
  • 01-设计模式-代理模式
    1、代理模式的分类代理模式分为:静态代理:在编译阶段确定了被代理对象的类型,简单。动态代理:在运行阶段确定了被代理对象的类型,复杂。2、静态代理静态代理涉及的类:一个接口,下面的例子中命名为Subject实现了接口的被代理对象RealSubject实现了接口的代理对象StaticProxy......