輸入一個陣列a[10],用三個函式分別實作下列功能:
①計算陣列a的所有元素之和,并輸出;
②實作陣列b,其逆序保存原陣列a的元素;
③將陣列a按由大到小排序。
uj5u.com熱心網友回復:
都是很基礎的寫法 建議自己實作1.遍歷陣列進行累加
2.遍歷陣列a取值放到陣列b,如b[9 - i] = a[i]
3.冒泡排序應該學了吧,參照那個就好了
uj5u.com熱心網友回復:
int sum(char* p, int num) {int sum = 0;
for (int i = 0; i < num; i++)
sum = sum + p[i];
return sum;
}
int reverse(char* a, char* b, int num) {
for (int i = 0; i < num; i++) {
b[i] = a[num - i - 1];
}
return 0;
}
int sort(char* p, int num) {
int temp;
for(int i=0;i<num-1;i++)
for(int j=0;j<num-i-1;j++)
if (p[j] < p[j + 1]) {
temp = p[j];
p[j] = p[j + 1];
p[j + 1] = temp;
}
return 0;
}
uj5u.com熱心網友回復:
綜合樓上的,代碼供參考:#include <stdio.h>
#define N 10 //定義常數N=10
void sum(int* p, int num) //計算陣列所有元素之和并輸出
{
int sum = 0;
for (int i = 0; i < num; i++)
sum = sum + p[i];
printf("sum=%d\n",sum);
}
int reverse(int* a, int* b, int num)//實作陣列b,逆序保存原陣列a的元素;
{
for (int i = 0; i < num; i++){
b[i] = a[num - i - 1];
}
return 0;
}
int sort(int* p, int num)//將陣列由大到小排序
{
int temp;
for(int i=0;i<num-1;i++)
for(int j=0;j<num-i-1;j++)
if (p[j] < p[j + 1]) {
temp = p[j];
p[j] = p[j + 1];
p[j + 1] = temp;
}
return 0;
}
int main()
{
int a[N],b[N];
for(int i=0;i<N;i++){ //初始化陣列a[]并輸出看看
a[i] = i+1;
printf("%d ",a[i]);//1 2 3 4 5 6 7 8 9 10
}
printf("\n");
//1 計算陣列a的所有元素之和并輸出
sum(a,N);
//2 陣列b,逆序保存原陣列a的元素;
reverse(a,b,N);
for(int i=0;i<N;i++){ //輸出看看逆序的b[]陣列
printf("%d ",b[i]);
}
printf("\n");
//3 將陣列a按由大到小排序
sort(a, N);
for(int i=0;i<N;i++){ //輸出看看由大到小排序的a[]陣列
printf("%d ",a[i]);
}
printf("\n");
return 0;
}
轉載請註明出處,本文鏈接:https://www.uj5u.com/houduan/262634.html
標籤:新手樂園
上一篇:C語言
