用C语言实现,给定一个数据集,例如4,2,3,4,5,4,把数组存放的数据颠倒过来,例如4,5,4,3,2,4。解题思路,数组a的长度为n。k从0到(n-1)/2,交换a[k]
时间: 2024-03-14 19:46:35 浏览: 14
以下是用C语言实现将数组反转的示例代码:
```c
#include <stdio.h>
void reverse(int a[], int n) {
int i, temp;
for(i = 0; i < n/2; i++) {
temp = a[i];
a[i] = a[n-1-i];
a[n-1-i] = temp;
}
}
int main() {
int a[] = {4, 2, 3, 4, 5, 4};
int n = sizeof(a) / sizeof(int);
int i;
printf("原数组为:");
for(i = 0; i < n; i++) {
printf("%d ", a[i]);
}
printf("\n");
reverse(a, n);
printf("反转后的数组为:");
for(i = 0; i < n; i++) {
printf("%d ", a[i]);
}
printf("\n");
return 0;
}
```
运行这段代码,输出结果为:
```
原数组为:4 2 3 4 5 4
反转后的数组为:4 5 4 3 2 4
```
即为将原数组a中的数据颠倒过来后的结果。
相关问题
用C语言 写一个函数,使给定的3×4的二维整型数组转置
以下是一个将3x4的二维整型数组转置的C语言函数:
```c
void transpose(int arr[3][4]) {
int temp;
for (int i = 0; i < 3; i++) {
for (int j = i + 1; j < 4; j++) {
temp = arr[i][j];
arr[i][j] = arr[j][i];
arr[j][i] = temp;
}
}
}
```
使用方法:
```c
int main() {
int arr[3][4] = {{1, 2, 3, 4},
{5, 6, 7, 8},
{9, 10, 11, 12}};
transpose(arr);
// 输出转置后的数组
for (int i = 0; i < 4; i++) {
for (int j = 0; j < 3; j++) {
printf("%d ", arr[j][i]);
}
printf("\n");
}
return 0;
}
```
输出结果:
```
1 5 9
2 6 10
3 7 11
4 8 12
```
用C语言代码实现数据:6 1 2 7 9 3 4 5 10 8的快速排序
当然!下面是用C语言实现快速排序算法的代码:
```c
#include <stdio.h>
// 交换两个元素的值
void swap(int* a, int* b) {
int temp = *a;
*a = *b;
*b = temp;
}
// 将数组划分为两个子数组,返回划分点下标
int partition(int arr[], int low, int high) {
int pivot = arr[high]; // 选择最后一个元素作为基准点
int i = (low - 1); // i指向小于基准点的元素
for (int j = low; j <= high - 1; j++) {
// 如果当前元素小于等于基准点,则交换
if (arr[j] <= pivot) {
i++;
swap(&arr[i], &arr[j]);
}
}
swap(&arr[i + 1], &arr[high]);
return (i + 1);
}
// 快速排序函数
void quickSort(int arr[], int low, int high) {
if (low < high) {
int pi = partition(arr, low, high); // 获取划分点下标
// 对划分点左边的子数组进行快速排序
quickSort(arr, low, pi - 1);
// 对划分点右边的子数组进行快速排序
quickSort(arr, pi + 1, high);
}
}
// 打印数组
void printArray(int arr[], int size) {
for (int i = 0; i < size; i++) {
printf("%d ", arr[i]);
}
printf("\n");
}
int main() {
int arr[] = {6, 1, 2, 7, 9, 3, 4, 5, 10, 8};
int size = sizeof(arr) / sizeof(arr[0]);
printf("原始数组:");
printArray(arr, size);
quickSort(arr, 0, size - 1);
printf("排序后的数组:");
printArray(arr, size);
return 0;
}
```
运行以上代码,将会输出:
```
原始数组:6 1 2 7 9 3 4 5 10 8
排序后的数组:1 2 3 4 5 6 7 8 9 10
```
这就是使用C语言实现的快速排序算法,对给定的数组进行排序。