我创建了一个由用户给出的数组,大小和值,然后只将正的偶数值存储到另一个数组中,但我只得到0作为答案。
# include <stdio.h>
int main()
{
int n, i;
float num[10], A[10];
printf("Enter the numbers of elements: ");
scanf("%d", &n);
for(i = 0; i < n; ++i)
{
printf("%d. Enter number: ", i+1);
scanf("%f", &num[i]);
}
for(i = 0; i < n; ++i)
{
if(num[i] > 0 && fmod(num[i],2)==0){
A[i] = num[i];
}
}
printf("Positive, even values of the new created array are%d\t", A[i]);
return 0;
}
答案 0 :(得分:0)
您必须初始化n
。小心; n
不应超过10。
您只打印其中一个值A[i]
。我想你想要循环。
for(i = 0; i < n; ++i)
{
if(num[i] > 0 && fmod(num[i],2)==0){
A[i] = num[i];
printf("Positive, even values of the new created array are %lf\n", A[i]);
}
}
答案 1 :(得分:0)
通过检查第一个数组中的每个值是否大于或等于零,您可以非常简单地仅使用正和甚至数字填充第二个数组,然后通过检查位0(1位)是否为零,例如
for (int i = 0; i < MAX; i++) {
a[i] = rand() % LIM - 4999; /* random -4999 - 5000 */
if (a[i] >= 0 && !(a[i] & 1)) /* if pos and even */
b[n++] = a[i]; /* store in b array */
}
(注意:上面第一个数组使用的64个值是-4999 - 5000
之间的随机值,可以很好地测试只选择正数/偶数。)
之后,您可以打印两个阵列是一种合理的格式,以便轻松确认操作。将所有部分组合在一起,您可以执行以下操作:
#include <stdio.h>
#include <stdlib.h>
#include <time.h>
#define MAX 64
#define LIM 10000
int main (void) {
int a[MAX] = {0}, b[MAX] = {0}, n = 0;
srand (time (NULL));
for (int i = 0; i < MAX; i++) {
a[i] = rand() % LIM - 4999; /* random -4999 - 5000 */
if (a[i] >= 0 && !(a[i] & 1)) /* if pos and even */
b[n++] = a[i]; /* store in b array */
}
printf ("original array:\n\n"); /* output original array */
for (int i = 0; i < MAX; i++) {
if (i && (i % 8) == 0)
putchar ('\n');
printf (" %5d", a[i]);
}
putchar ('\n');
printf ("\npositive even array:\n\n"); /* output pos/even array */
for (int i = 0; i < n; i++) {
if (i && (i % 8) == 0)
putchar ('\n');
printf (" %5d", b[i]);
}
putchar ('\n');
return 0;
}
示例使用/输出
$ ./bin/arrayposeven
original array:
-68 3112 1571 -1926 1263 -1424 554 3181
1701 -4545 -956 4442 -431 -2333 -4373 3972
-3033 2539 -1926 794 4050 1318 3323 120
-3253 4451 781 2979 519 -2224 4251 1802
-4113 -2827 1227 -1499 -2899 -3220 3033 3801
-2765 -2923 3242 1803 -3905 220 -2874 4413
-2242 200 206 -3193 -3483 -1471 -1722 4615
4331 410 2593 -3799 3185 -1804 3002 424
positive even array:
3112 554 4442 3972 794 4050 1318 120
1802 3242 220 200 206 410 3002 424
仔细看看,如果您有任何其他问题,请告诉我。