将数组中的非零元素移到前面来,零元素移到后面去,各非零元素间的相对位置不变 C语言
来源:学生作业帮 编辑:作业帮 分类:综合作业 时间:2024/05/12 05:57:09
将数组中的非零元素移到前面来,零元素移到后面去,各非零元素间的相对位置不变 C语言
两种方法:从前边往后检查每一个元素,如果发现某元素为零,就将它后面的所有的元素顺序前移动一位; 找到第一个零元素v[i],从i+1开始,往后检查每个元素v[j],若v[j]不是零,就将v[j]存入v[i]中,再将
//v[j]设置为0,并令i+1,在检查了v[n]后,结束算法
两种方法:从前边往后检查每一个元素,如果发现某元素为零,就将它后面的所有的元素顺序前移动一位; 找到第一个零元素v[i],从i+1开始,往后检查每个元素v[j],若v[j]不是零,就将v[j]存入v[i]中,再将
//v[j]设置为0,并令i+1,在检查了v[n]后,结束算法
/*
整理前 :
30 0 45 -20 16 0 8 0 6 13 0 12 -37 -9 18
整理后 :
30 45 -20 16 8 6 13 12 -37 -9 18 0 0 0 0
Press any key to continue
*/
#include <stdio.h>
void Change(int a[], int n) {
\x09int i,j;
\x09for(i = 0; i < n - 1; ++i) {
\x09\x09if(a[i] == 0) {
\x09\x09\x09for(j = i; j < n - 1; ++j)
\x09\x09\x09\x09a[j] = a[j + 1];
\x09\x09\x09a[n - 1] = 0;
\x09\x09}
\x09}
}
void Show(int a[], int n) {
\x09int i;
\x09for(i = 0; i < n; ++i)
\x09\x09printf("%d ",a[i]);
\x09printf("\n");
}
int main() {
\x09int a[] = {30,0,45,-20,16,0,8,0,6,13,0,12,-37,-9,18};
\x09int n = sizeof(a)/sizeof(a[0]);
\x09printf("整理前 :\n");
\x09Show(a,n);
\x09Change(a,n);
\x09printf("整理后 :\n");
\x09Show(a,n);
\x09return 0;
}
整理前 :
30 0 45 -20 16 0 8 0 6 13 0 12 -37 -9 18
整理后 :
30 45 -20 16 8 6 13 12 -37 -9 18 0 0 0 0
Press any key to continue
*/
#include <stdio.h>
void Change(int a[], int n) {
\x09int i,j;
\x09for(i = 0; i < n - 1; ++i) {
\x09\x09if(a[i] == 0) {
\x09\x09\x09for(j = i; j < n - 1; ++j)
\x09\x09\x09\x09a[j] = a[j + 1];
\x09\x09\x09a[n - 1] = 0;
\x09\x09}
\x09}
}
void Show(int a[], int n) {
\x09int i;
\x09for(i = 0; i < n; ++i)
\x09\x09printf("%d ",a[i]);
\x09printf("\n");
}
int main() {
\x09int a[] = {30,0,45,-20,16,0,8,0,6,13,0,12,-37,-9,18};
\x09int n = sizeof(a)/sizeof(a[0]);
\x09printf("整理前 :\n");
\x09Show(a,n);
\x09Change(a,n);
\x09printf("整理后 :\n");
\x09Show(a,n);
\x09return 0;
}
c语言 将整数序列中的0元素移到最后
用C语言编写一个函数,把给定整数组中0元素全部移到后部,且所有非0元素的顺序不变
矩阵加法 C语言问题Description若将稀疏矩阵中的非零元素以行序为主序的顺序存于一个一维数组中,并用一个二维数组
设数组R中n(n>1)个元素中有多个零元素,试设计一个算法将R中的所有非零元素依次移动到R数组的前端
矩阵每行每列只有一个元素非零,则此矩阵的逆矩阵和原矩阵相比,零元素位置不变,非零元素变为原来的倒数(或负倒数)?对吗?
已知长度为n的数组的元素为整数,编程将数组中的偶数从小到大排序,奇数位置不变.
零起点学算法81——找出数组中最大元素的位置(下标值)
C语言计算数组中任一元素a[i][j]在数组中位置的公式
C:输入10个实数存在数组中,将大于 等于平均数的元素放在数组的前面,小于平均数的元素放在数组的后面并输出
C 语言 一维整形数组将数组元素逆序存放并把交换后的数组输出 要求数组元素的输入,交换和输出分别用函数
C语言 【给数组中的元素按顺序编号】
非零矩阵是行列式不为零,还是有元素不为零的矩阵?