C语言将一个长度为10的一组数据按从大到小排序,并计算总和
时间: 2024-06-04 16:12:45 浏览: 12
可以使用冒泡排序的算法,如下所示:
#include <stdio.h>
int main(void) {
int nums[10] = {5, 1, 9, 3, 4, 6, 8, 2, 7, 0};
int i, j, temp, sum = 0;
for (i = 0; i < 9; ++i) {
for (j = 0; j < 9-i; ++j) {
if (nums[j] < nums[j+1]) {
temp = nums[j];
nums[j] = nums[j+1];
nums[j+1] = temp;
}
}
}
for (i = 0; i < 10; ++i) {
sum += nums[i];
printf("%d ", nums[i]);
}
printf("\nSum: %d\n", sum);
return 0;
}
输出结果为:
9 8 7 6 5 4 3 2 1 0
Sum: 45
笑话:为什么程序员总是深夜加班? 因为午饭都是bug
相关问题
在一个长度为n的整数序列中奇数从小到大排序偶数从大到小排序c语言
你可以使用以下C语言代码来实现这个要求:
```C
#include <stdio.h>
void sortOddEven(int arr[], int n) {
// 对奇数进行升序排序
for (int i = 0; i < n; i++) {
if (arr[i] % 2 != 0) {
for (int j = i + 1; j < n; j++) {
if (arr[j] % 2 != 0 && arr[i] > arr[j]) {
int temp = arr[i];
arr[i] = arr[j];
arr[j] = temp;
}
}
}
}
// 对偶数进行降序排序
for (int i = 0; i < n; i++) {
if (arr[i] % 2 == 0) {
for (int j = i + 1; j < n; j++) {
if (arr[j] % 2 == 0 && arr[i] < arr[j]) {
int temp = arr[i];
arr[i] = arr[j];
arr[j] = temp;
}
}
}
}
}
int main() {
int n;
printf("请输入整数序列的长度:");
scanf("%d", &n);
int arr[n];
printf("请输入整数序列:");
for (int i = 0; i < n; i++) {
scanf("%d", &arr[i]);
}
sortOddEven(arr, n);
printf("排序后的整数序列为:");
for (int i = 0; i < n; i++) {
printf("%d ", arr[i]);
}
printf("\n");
return 0;
}
```
这段代码首先定义了一个名为`sortOddEven`的函数,它接受一个整数数组和数组的长度作为参数。函数通过两次遍历数组,分别对奇数和偶数进行排序。在每次遍历中,使用冒泡排序的思想,将满足条件的元素进行交换,从而实现排序。
在`main`函数中,首先读取整数序列的长度,并根据长度创建一个数组。接着读取用户输入的整数序列,并调用`sortOddEven`函数对序列进行排序。最后,输出排序后的整数序列。
你可以根据需要修改代码,比如添加错误处理、优化算法等。
用C语言编写一个输入任意10个整数从大到小排序的程序
好的,以下是C语言编写的输入任意10个整数从大到小排序的程序:
```c
#include <stdio.h>
int main()
{
int arr[10];
int i, j, temp;
printf("请输入10个整数:\n");
// 接收用户输入的10个整数
for(i=0; i<10; i++)
{
scanf("%d", &arr[i]);
}
// 冒泡排序,从大到小排序
for(i=0; i<10-1; i++)
{
for(j=0; j<10-i-1; j++)
{
if(arr[j] < arr[j+1])
{
temp = arr[j];
arr[j] = arr[j+1];
arr[j+1] = temp;
}
}
}
printf("\n排序后的结果为:\n");
// 输出排序后的结果
for(i=0; i<10; i++)
{
printf("%d ", arr[i]);
}
return 0;
}
```
希望对你有帮助!