定义数组 a[10],输入奇数1,3.....到数组中,要求先输出偶数后输出奇数。
时间: 2023-05-02 08:04:06 浏览: 94
可以使用以下代码来实现题目要求:
a = [0] * 10 # 定义长度为10的数组a,并初始化每个元素为0
i = 0 # 定义计数变量i
while True: # 无限循环直到用户输入完成
n = int(input()) # 读入一个数字
if n == 0: # 如果读入的数字为0,说明输入完成
break # 跳出循环
if n % 2 == 0: # 如果读入的数字为偶数,则存入数组a的偶数位置
a[i] = n
i += 2 # 计数变量i加2
else: # 否则,存入数组a的奇数位置
a[i+1] = n
i += 2 # 计数变量i加2
for j in range(10): # 循环输出数组a的所有元素
print(a[j], end=' ')
相关问题
c语言编程输入任意十个整数到数组a中,删除其中的奇数,并输出
下面是一个示例代码,实现了输入十个整数并删除奇数的功能:
```c
#include <stdio.h>
int main() {
int a[10], even[10], count = 0; // 定义数组和计数器
printf("请输入十个整数:\n");
for (int i = 0; i < 10; i++) {
scanf("%d", &a[i]); // 输入整数
if (a[i] % 2 == 0) { // 如果是偶数则加入新数组
even[count] = a[i];
count++;
}
}
printf("删除奇数后的结果为:\n");
for (int i = 0; i < count; i++) {
printf("%d ", even[i]); // 输出偶数数组
}
return 0;
}
```
这段代码首先定义了一个长度为 10 的整型数组 `a`,然后使用 `for` 循环输入十个整数,并判断是否为偶数。如果是偶数,则将其存入一个新的数组 `even` 中,并且将计数器 `count` 增加。最后再使用 `for` 循环输出新数组中的元素,即为删除奇数后的结果。
用C语言编程使得.任意输入一整形数组,编程实现将奇数放到数组的前面,偶数放到数组的后面。
对于您的问题,我可以回答。可以使用C语言的双指针算法来实现将奇数放到数组的前面,偶数放到数组的后面。代码示例如下:
```c
#include <stdio.h>
void swap(int* a, int* b) {
int temp = *a;
*a = *b;
*b = temp;
}
void oddEvenSort(int nums[], int numsSize) {
int* left = nums;
int* right = nums + numsSize - 1;
while (left < right) {
while ((*left) % 2 == 1 && left < right) {
left++;
}
while ((*right) % 2 == 0 && left < right) {
right--;
}
swap(left, right);
}
}
int main() {
int nums[] = {1, 4, 2, 3, 5, 6};
int numsSize = 6;
oddEvenSort(nums, numsSize);
for (int i = 0; i < numsSize; i++) {
printf("%d ", nums[i]);
}
return 0;
}
```
上面的代码中,swap函数用于交换两个数的值,oddEvenSort函数中,left指针从数组前面往后面移动,找到第一个偶数。right指针从数组后面往前面移动,找到第一个奇数。然后交换两个数的值。重复这个过程直到left >= right,也就是奇数和偶数都被放到了对应的位置为止。在main函数中定义了一个测试数组,可以根据具体情况修改。