用c语言删除数组中的偶数
时间: 2023-06-11 10:08:01 浏览: 363
可以使用以下代码来删除数组中的偶数:
```c
#include <stdio.h>
int main() {
int arr[10] = {0, 1, 2, 3, 4, 5, 6, 7, 8, 9};
int len = sizeof(arr) / sizeof(int);
int i, j = 0;
for (i = 0; i < len; i++) {
if (arr[i] % 2 != 0) {
arr[j++] = arr[i];
}
}
len = j;
for (i = 0; i < len; i++) {
printf("%d ", arr[i]);
}
return 0;
}
```
这个程序会将数组中的奇数保存在原数组中,然后输出它们。在程序中,我们使用了两个循环:第一个循环将奇数保存在原数组中,第二个循环输出它们。
相关问题
在c语言产生n个2位随机整数,存放到数组中。编写程序,将数组中所有奇数删除,输出原数组内容和删除奇数后数组内容
好的,我能理解。下面是您的程序:
```c
#include <stdio.h>
#include <stdlib.h>
#include <time.h>
int main()
{
int n = 10; // 数组长度
int arr[n]; // 数组定义
int i, j, k = 0; // 循环计数器和奇数个数
srand(time(NULL)); // 随机数种子初始化
// 生成随机数组并输出
printf("原数组内容:\n");
for (i = 0; i < n; i++) {
arr[i] = rand() % 90 + 10; // 生成10到99范围内的随机数
printf("%d ", arr[i]);
if (arr[i] % 2 == 1) // 统计奇数个数
k++;
}
// 删除奇数并输出
printf("\n删除奇数后数组内容:\n");
if (k == 0) // 若无奇数,则直接输出原数组
for (i = 0; i < n; i++)
printf("%d ", arr[i]);
else { // 否则去掉所有奇数再输出
int temp[n - k]; // 定义临时数组存放偶数
for (i = 0, j = 0; i < n; i++)
if (arr[i] % 2 == 0) // 只留下偶数
temp[j++] = arr[i];
for (i = 0; i < n - k; i++)
printf("%d ", temp[i]); // 输出结果
}
printf("\n");
return 0;
}
```
希望能对您有帮助!
用c语言函数fun的功能是:将s所指字符串中下标为偶数同时ASCII值为奇数的字符删除,s所指串中剩余的字符形成的新串放在t所指的数组中。
以下是实现该功能的C语言函数fun的代码:
```c
void fun(char *s, char *t) {
int i, j;
for (i = 0, j = 0; s[i] != '\0'; i++) {
if (i % 2 == 0 && s[i] % 2 == 1) {
continue;
}
t[j++] = s[i];
}
t[j] = '\0';
}
```
该函数接受两个参数,s和t,分别表示原始字符串和新的字符串。函数遍历原始字符串中的每个字符,如果其下标是偶数且ASCII码是奇数,则跳过该字符,否则将其添加到新的字符串中。最后在新的字符串的末尾加上字符串结束符'\0'。注意,该函数不会改变原始字符串s的值,只会生成一个新的字符串t。
阅读全文