我是一名初級程式員,我需要一些幫助來使以下練習的結果看起來更好一些。正如我在標題中所說,我想通過從陣列中洗掉 0-s 并只留下數字來使練習看起來更好。
練習是這樣的:
我們輸入一個整數陣列,然后將正負整數和 3 的倍數復制到第二個陣列中,在第三個陣列中復制奇數而不是 3 的倍數的負元素。這是我所做的代碼:
#include <stdio.h>
#include <stdlib.h>
#define N 5
int main()
{
int v[N];
int v2[N] = {0, };
int v3[N] = {0, };
int i;
printf("Please enter the elements of the 1st array: ");
for (i = 0; i < N; i )
{
scanf("%d", &v[i]);
}
printf("\nThe elements of the 2nd array are: ");
for (i = 0; i < N; i )
{
if ((v[i] >= 0 || v[i] <= 0) && v[i] % 3 == 0)
{
v2[i] = v[i];
}
}
for (i = 0; i < N; i )
{
printf("%d ", v2[i]);
}
printf("\nThe value of the 3rd array are : ");
for (i = 0; i < N; i )
{
if (v[i] <= 0 && v[i] % 2 != 0 && v[i] % 3 != 0)
{
v3[i] = v[i];
}
}
for (i = 0; i < N; i )
{
printf("%d ", v3[i]);
}
return 0;
}
為了將來使用,如果可能的話,如何將為代碼塊復制的代碼直接發布到此處而不在每行上使用空間 4 次?提前致謝
uj5u.com熱心網友回復:
另一種選擇是在輸出回圈中插入一個條件:
for (i = 0; i < N; i )
{
if (v2[i] != 0)
{
printf("%d ",v2[i]);
}
}
uj5u.com熱心網友回復:
如果只想將第一個陣列的相關數字添加到第二個陣列,則必須使用兩個計數器。一個作為源陣列的索引,即輸入的數字,第二個計數器作為目標陣列的索引。也許您仍然需要為每個目標陣列提供一個數字,因為這些陣列中的數字數量可能會有所不同(并且可能小于 5)。
作為提示,源和目標陣列的計數器將在示例源目標注釋中顯示如下
0 0 no new number entered
1 0 no new number entered
2 1 number 3 at index 2 is a valid number for the first target array
3 1 again no new number for the target array
4 2 number 5 at index 4 is valid again.
所以,現在你知道第一個目標陣列有 2 個有效數字,然后你可以輸出陣列的前兩個數字。
轉載請註明出處,本文鏈接:https://www.uj5u.com/net/327460.html
標籤:C
上一篇:C中結構定義之間的區別
下一篇:如何關閉/清除IPC訊息佇列?
