欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

4.13

程序员文章站 2022-03-08 15:01:27
...
  1. 多组输入
#include <stdio.h>

int main()

{

    int a, b;

    while (scanf("%d%d", &a, &b) != EOF)//或者是   ~scanf("%d%d", &a, &b)
   {

        printf("%d\n", a + b);

    }

    return 0;

}

scanf函数的返回值代表的是正确匹配的参数个数

 EOF: end of file 代表文件结束

 输入ctrl+z终止输入

 

2、三目运算符

<表达式1> ? <表达式2> : <表达式3>; "?"运算符的含义是:先求表达式1的值,如果为真,则执行表达式2,并返回表达式2的结果;如果表达式1的值为假,则执行表达式3,并返回表达式3的结果。

表达式1 ? 语句1 : 语句2
 等价于
  if ( 表达式1 ) {
          语句1;
       } else {
           语句2;
       }

3.c语言输出控制

#include <stdio.h>

int main()

{

    printf("%4d\n", 1);             // 占4位

    printf("%4d%4d\n", 1, 2);       // 两个数各占四位

    printf("%4d\n", 12);            // 占四位

    printf("%d\n", 12);

    printf("%4d\n", 123450);        // 超出位数的情况

    printf("%-4d\n", 12);           // 靠左

    printf("%-4d%-4d\n", 12, 34);

    printf("%04d\n", 12);           // 用0填充



    return 0;

}

4.冒泡排序

它重复地走访过要排序的元素列,依次比较两个相邻的元素,如果他们的顺序(如从大到小、首字母从A到Z)错误就把他们交换过来。走访元素的工作是重复地进行直到没有相邻元素需要交换,也就是说该元素已经排序完成。

 

#include <stdio.h>
int main()
{
    int a[100], n;
    scanf("%d", &n);
    for (int i = 0; i< n; ++i) {
        scanf("%d", &a[i]);
    }
    // n个元素排序要进行n-1轮比较
    for (int i = 0; i < n - 1; ++i) {
        // 第i轮比较需要比较n-i次
        for (int j = 0; j < n - i; ++j) {
            // 每次比较第j个元素和第j+1个元素
            if (a[j] > a[j + 1]) {
                a[j] = a[j] + a[j + 1];
                a[j + 1] = a[j] - a[j + 1];
                a[j] = a[j] - a[j + 1];
            }
        }
    }

    for (int i = 0; i < n; ++i) {

        //printf("%d%c", a[i], i == n - 1 ? '\n' : ' ');

        if (i == n - 1) {

            printf("%d\n", a[i]);

        } else {

            printf("%d ", a[i]);

        }

    }

    return 0;

}
相关标签: C语言学习