gpt4 book ai didi

C编程: Array

转载 作者:太空宇宙 更新时间:2023-11-04 05:17:50 24 4
gpt4 key购买 nike

我的问题:输入 string1 并将 string1 拆分为包含偶数的字符串 a 和包含奇数的字符串 b。

例如:数组:4 3 1 2 6 8

数组a:2 4 6 8数组 b: 1 3

当我运行这段代码时,出现了问题。你能帮我找出错误吗?

#include<stdio.h>
#include<conio.h>
#include<string.h>

void problem(int a[100], int n);
void bubblesort(int a[100], int n);
void print_array(int a[100], int n);

int main()
{
int b[100],c[100],evenlen=0,oddlen=0,a[100], n;
printf("Input n: "); scanf_s("%d", &n);
printf("Input array: ");
for (int i = 0; i < n; i++)
{
scanf_s("%d", &a[i]);
}
for (int i = 0; i < n; i++)
{
if ((a[i] % 2) == 0)
{
a[i] = b[evenlen];
evenlen++;
}
else
{
a[i] = c[oddlen];
oddlen++;
}
}
bubblesort(b, evenlen);
bubblesort(c, oddlen);
printf("The even array : "); print_array(b, evenlen);
printf("\nThe odd array : "); print_array(c, oddlen);
_getch();
return 0;
}

void bubblesort(int a[100], int n)
{
int hold;
for (int pass = 0; pass < n;pass++)
for (int i = 0; i < n - 1; i++)
{
if (a[i]>a[i + 1])
{
hold = a[i];
a[i] = a[i + 1];
a[i + 1] = hold;
}
}
}

void print_array(int a[100], int n)
{
for (int i = 0; i < n; i++)
printf("%d ", a[i]);
}

最佳答案

这个循环很麻烦:

for (int i = 0; i < n; i++)
{
if ((a[i] % 2) == 0)
{
a[i] = b[evenlen];
evenlen++;
}
else
{
a[i] = c[oddlen];
oddlen++;
}
}

这很麻烦,因为您将 来自(未初始化)ba 数组中的条目赋值,并且c 数组。

因为 bc 数组未初始化,它们的内容不确定,从它们读取会导致未定义的行为.

我想你的意思是做相反的分配,将分配给 a 中的bc 数组.

关于C编程: Array,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29693079/

24 4 0
文章推荐: python - Kivy 相机内存错误
文章推荐: html - CSS类显示
文章推荐: c - 向链表添加元素(C)
文章推荐: Python 参数化
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com