在主函数中输入数值给一维数组的n个元素赋值,用指针变量作为函数参数,通过函数调用实现从小到大的顺序排列,并计算这n个数的平均值,最后在主函数中将该数组及平均值输出。。
时间: 2024-03-05 08:50:45 浏览: 103
好的,下面是代码实现:
```python
def sort(arr):
n = len(arr)
for i in range(n-1):
for j in range(n-i-1):
if arr[j] > arr[j+1]:
arr[j], arr[j+1] = arr[j+1], arr[j]
def average(arr):
n = len(arr)
sum = 0
for i in range(n):
sum += arr[i]
return sum / n
n = int(input("请输入数组元素个数:"))
arr = []
for i in range(n):
x = int(input(f"请输入第{i+1}个元素的值:"))
arr.append(x)
sort(arr)
avg = average(arr)
print("排序后的数组为:", arr)
print("平均值为:", avg)
```
运行结果:
```
请输入数组元素个数:5
请输入第1个元素的值:3
请输入第2个元素的值:5
请输入第3个元素的值:2
请输入第4个元素的值:1
请输入第5个元素的值:4
排序后的数组为: [1, 2, 3, 4, 5]
平均值为: 3.0
```
相关问题
用c语言在主函数中输入数值给一维数组的n个元素赋值,用指针变量作为函数参数,通过函数调用实现从小到大的顺序排列,并计算这n个数的平均
好的,您的问题我已经理解了。下面是代码实现:
```c
#include <stdio.h>
// 排序函数,使用指针变量作为参数
void sort(int *arr, int n){
int i, j, temp;
for(i = 0; i < n - 1; i++){
for(j = i + 1; j < n; j++){
if(*(arr + i) > *(arr + j)){
temp = *(arr + i);
*(arr + i) = *(arr + j);
*(arr + j) = temp;
}
}
}
}
int main(){
int n, i;
float sum = 0, avg;
printf("请输入数组元素个数:");
scanf("%d", &n);
int arr[n]; // 定义一维数组
int *p = arr; // 定义指针变量,指向数组首元素
// 输入数组元素
printf("请输入%d个整数:", n);
for(i = 0; i < n; i++){
scanf("%d", p + i);
sum += *(p + i); // 计算数组元素和
}
sort(p, n); // 调用排序函数,从小到大排序
// 输出排序后的数组元素
printf("排序后的数组元素为:");
for(i = 0; i < n; i++){
printf("%d ", *(p + i));
}
avg = sum / n; // 计算平均值
printf("\n这%d个数的平均值为:%.2f\n", n, avg);
return 0;
}
```
希望能够帮到您!
用C语言在主函数中输入数值给一维数组的n个元素赋值,用指针变量作为函数参数,通过函数调用实现从小到大的顺序排列,并计算这n个数的平均值,最后在主函数中将该数组及平均值输出。。
好的,下面是C语言的代码实现:
```c
#include <stdio.h>
void sort(int *arr, int n) {
int i, j;
for (i = 0; i < n-1; i++) {
for (j = 0; j < n-i-1; j++) {
if (arr[j] > arr[j+1]) {
int temp = arr[j];
arr[j] = arr[j+1];
arr[j+1] = temp;
}
}
}
}
float average(int *arr, int n) {
int i, sum = 0;
for (i = 0; i < n; i++) {
sum += arr[i];
}
return (float)sum / n;
}
int main() {
int n, i;
printf("请输入数组元素个数:");
scanf("%d", &n);
int arr[n];
for (i = 0; i < n; i++) {
printf("请输入第%d个元素的值:", i+1);
scanf("%d", &arr[i]);
}
sort(arr, n);
float avg = average(arr, n);
printf("排序后的数组为:");
for (i = 0; i < n; i++) {
printf("%d ", arr[i]);
}
printf("\n平均值为:%.2f\n", avg);
return 0;
}
```
运行结果:
```
请输入数组元素个数:5
请输入第1个元素的值:3
请输入第2个元素的值:5
请输入第3个元素的值:2
请输入第4个元素的值:1
请输入第5个元素的值:4
排序后的数组为:1 2 3 4 5
平均值为:3.00
```
阅读全文