CPP30. 数组元素处理
描述
输入描述
键盘输入 6 个整数,保存到数组中输出描述
示例1
输入:
1 0 3 4 0 -3
输出:
1 3 4 -3 0 0
C++ 解法, 执行用时: 2ms, 内存消耗: 312KB, 提交时间: 2022-02-10
#include <iostream> using namespace std; void func(int* p, int n); int main() { int arr[6] = { 0 }; for (int i = 0; i < 6; i++) { cin >> arr[i]; } func(arr, 6); for (int i = 0; i < 6; i++) { if (i == 5) { cout << arr[i] << endl; } else { cout << arr[i] << " "; } } return 0; } void func(int* p, int n) { for(int i=0;i<n;i++){ if(p[i]==0){ for(int j=i;j<n-1;j++){ p[j]=p[j+1];} p[n-1]=0; n--; } } } // write your code here......
C++ 解法, 执行用时: 2ms, 内存消耗: 384KB, 提交时间: 2022-02-09
#include <iostream> using namespace std; void func(int* p, int n); int main() { int arr[6] = { 0 }; for (int i = 0; i < 6; i++) { cin >> arr[i]; } func(arr, 6); for (int i = 0; i < 6; i++) { if (i == 5) { cout << arr[i] << endl; } else { cout << arr[i] << " "; } } return 0; } void func(int* p, int n) { // write your code here...... int w=0; for(int i=0;i<n;i++) { if(*(p+i)==0) { w++; } } for(int i=0;i<n;i++) { if(*(p+i)==0) { for(int j=i;j<n-1;j++) { *(p+j)=*(p+j+1); } } } for(int i=n-1;i>n-w-1;i--) { *(p+i)=0; } }
C++ 解法, 执行用时: 2ms, 内存消耗: 392KB, 提交时间: 2022-02-08
#include <iostream> using namespace std; void func(int* p, int n); int main() { int arr[6] = { 0 }; for (int i = 0; i < 6; i++) { cin >> arr[i]; } func(arr, 6); for (int i = 0; i < 6; i++) { if (i == 5) { cout << arr[i] << endl; } else { cout << arr[i] << " "; } } return 0; } void func(int* p, int n) { // write your code here...... int tmp; for(int i=0; i<n; i++) { if(p[i]==0) { for(int j=i; j<n-1; j++) p[j] = p[j+1];//把字符往前移动 p[n-1] = 0;//将最后一个设置为0 n--;//缩短数组遍历长度 } } }
C++ 解法, 执行用时: 2ms, 内存消耗: 392KB, 提交时间: 2021-11-20
#include <iostream> using namespace std; void func(int* p, int n) { //id指向第一个0所在位置 int id=0; //i指向游标所在位置,遍历数组所有元素 for(int i=0;i<n;i++){ if(p[i]!=0){ swap(p[i],p[id]); id++; } } } int main() { int arr[6] = { 0 }; for (int i = 0; i < 6; i++) { cin >> arr[i]; } func(arr, 6); for (int i = 0; i < 6; i++) { if (i == 5) { cout << arr[i] << endl; } else { cout << arr[i] << " "; } } return 0; }
C++ 解法, 执行用时: 2ms, 内存消耗: 392KB, 提交时间: 2021-11-18
#include <iostream> using namespace std; void func(int* p, int n); int main() { int arr[6] = { 0 }; for (int i = 0; i < 6; i++) { cin >> arr[i]; } func(arr, 6); for (int i = 0; i < 6; i++) { if (i == 5) { cout << arr[i] << endl; } else { cout << arr[i] << " "; } } return 0; } void func(int* p, int n) { // write your code here...... int b[100]; int j=0; for(int i=0;i<n;i++){ if(p[i]!=0){ b[j]=p[i]; j++; } } for(int i=0;i<n;i++){ if(i<j){ p[i]=b[i]; } else{ p[i]=0; } } }