绝对值排序 计蒜客 - T1363

绝对值排序 计蒜客 - T1363

问题描述:
输入 3 个整数,按绝对值从小到大排序。

输入格式:
输入包含 3 个int范围内的整数,用空格隔开。

输出格式:
输出一行,包含三个数,用空格隔开。
若两个数字的绝对值一样,则比较两个数字的大小。

样例输入:

1 3 -3

样例输出:

1 -3 3
  • 参考程序
#include<iostream>
#include<algorithm>
using namespace std;
const int N=10;
int a[N];
bool cmp(int a,int b) { //自定义一个返回绝对值大小的函数
    if(abs(a)!=abs(b)) return abs(a)<abs(b);
    return a<b;
}
int main() {
    for(int i=0; i<3; i++) cin>>a[i];
    sort(a, a+3, cmp);
    for (int i=0; i<3; i++) {
        cout<<a[i]<<" ";
    }
    cout<<endl;
    return 0;
}
  • 2
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
好的,下面是对应的程序实现: 1. 求1!+2!+3!+.…+20!的和。 ```c #include <stdio.h> int main() { long long sum = 0; long long fact = 1; for (int i = 1; i <= 20; i++) { fact *= i; sum += fact; } printf("1! + 2! + 3! + ... + 20! = %lld\n", sum); return 0; } ``` 2. 编写程序,输入10个数,按照由小到大排序输出。 ```c #include <stdio.h> int main() { int nums[10]; printf("请输入10个数字:\n"); for (int i = 0; i < 10; i++) { scanf("%d", &nums[i]); } for (int i = 0; i < 9; i++) { for (int j = i + 1; j < 10; j++) { if (nums[j] < nums[i]) { int temp = nums[i]; nums[i] = nums[j]; nums[j] = temp; } } } printf("从小到大排序后的结果是:\n"); for (int i = 0; i < 10; i++) { printf("%d ", nums[i]); } printf("\n"); return 0; } ``` 3. 求一个7×7矩阵主对角线元素之和 ```c #include <stdio.h> int main() { int matrix[7][7] = { {1, 0, 0, 0, 0, 0, 0}, {0, 1, 0, 0, 0, 0, 0}, {0, 0, 1, 0, 0, 0, 0}, {0, 0, 0, 1, 0, 0, 0}, {0, 0, 0, 0, 1, 0, 0}, {0, 0, 0, 0, 0, 1, 0}, {0, 0, 0, 0, 0, 0, 1} }; int sum = 0; for (int i = 0; i < 7; i++) { sum += matrix[i][i]; } printf("主对角线元素之和为:%d\n", sum); return 0; } ``` 4. 编写程序,利用下述公式计算π的值。当最后一项的绝对值小于0.000001时停止计算。/4=1-1/3+1/5-1/7+1/9-… ```c #include <stdio.h> int main() { double pi = 0.0; double item = 1.0; int sign = 1; int n = 1; while (item >= 0.000001) { pi += sign * item; sign = -sign; n += 2; item = 1.0 / n; } pi *= 4; printf("π的近似值为:%f\n", pi); return 0; } ``` 5. 编写程序输出“九九乘法表” ```c #include <stdio.h> int main() { for (int i = 1; i <= 9; i++) { for (int j = 1; j <= i; j++) { printf("%d*%d=%d\t", j, i, j * i); } printf("\n"); } return 0; } ```

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值