请编写函数void fun ( int aa[ ], int x, int *n ),它的功能是:删除数组aa中所有与x相等的元素,数组元素个数由n传入。
时间: 2023-04-03 17:03:21 浏览: 55
好的,这个问题很简单。以下是函数的代码实现:
void fun(int aa[], int x, int *n) {
int i, j;
for (i = 0, j = 0; i < *n; i++) {
if (aa[i] != x) {
aa[j++] = aa[i];
}
}
*n = j;
}
这个函数的作用是删除数组aa中所有与x相等的元素,同时更新数组元素个数n。具体实现是通过遍历数组aa,将不等于x的元素移动到数组前面,最后更新n为新的元素个数。
相关问题
请编写函数fun(),它的功能是:求出1到1000之内能被5或13整除、但不能同时被5和13整除的所有整数并将它们放在a所指的数组中,通过n返回这些数的个数。注意:部分源程序给出如下。 请勿改动主函数main和其他函数中的任何内容,仅在函数fun的花括号中填入所编写的若干语句。 #include<stdio.h> void fun(int *a, int *n) { } int main() { int aa[1000],n,k; fun(aa,&n); for(k=0;k<n;k++) if((k+1)%10==0) { printf("%5d",aa[k]) ; printf("\n"); /*-行写10 个 数*/ } else printf("%5d",aa[k]); return 0; )
请看下面的函数代码:
```c
void fun(int *a, int *n) {
int count = 0; // 统计符合条件的数的个数
for (int i = 1; i <= 1000; i++) {
if ((i % 5 == 0 || i % 13 == 0) && i % 65 != 0) {
a[count++] = i; // 将符合条件的数存入数组a中
}
}
*n = count; // 将符合条件的数的个数存入n中
}
```
这个函数的思路是:从1到1000遍历每个数,如果这个数能被5或13整除,但不能同时被5和13整除,就将它存入数组a中,并将符合条件的数的个数存入n中。最后,返回符合条件的数的个数。
请用c语言编写函数fun(),它的功能是:求出1到1000之内能被5或13整除、但不能同时被5和13整除的所有整数并将它们放在a所指的数组中,通过n返回这些数的个数。 注意:部分源程序给出如下。 请勿改动主函数main和其他函数中的任何内容,仅在函数fun的花括号中填入所编写的若干语句。 #include<stdio.h> void fun(int *a, int *n) { } int main() { int aa[1000],n,k; fun(aa,&n); for (k=0;k<n;k++) if((k+1)%10==0) { printf("%5d",aa[k]) ; printf("\n"); /*-行写10个 数*/ } else printf("%5d",aa[k]); return 0; }
以下是函数fun的实现:
```c
void fun(int *a, int *n) {
int count = 0;
for (int i = 1; i <= 1000; i++) {
if ((i % 5 == 0 || i % 13 == 0) && !(i % 5 == 0 && i % 13 == 0)) {
*(a + count) = i;
count++;
}
}
*n = count;
}
```
该函数的实现过程为:
1. 定义一个计数器`count`,用于记录符合条件的数的个数。
2. 循环遍历1到1000之间的数。
3. 判断当前数是否能被5或13整除,且不能同时被5和13整除。
4. 如果符合条件,将该数存入数组中,并将`count`加1。
5. 循环结束后,将`count`的值赋给指针变量`n`,表示符合条件的数的个数。
阅读全文