4.13
程序员文章站
2022-03-08 15:01:27
...
- 多组输入
#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语言学习3
下一篇: 算法笔记—例题3-5求一元二次方程的根