我的大腦剛剛碰壁,我不確定如何在不進入無限回圈的情況下做到這一點,我的意思是我的大腦和代碼!不知道我是否將其復雜化到最大程度,或者我是否走在正確的軌道上。任何幫助將非常感激!
問題:
我想列印一個類似于 Fizz Buzz 序列的數字串列,但他們說的是從 0 到 24 的“Hello”、“Red”、“Green”和“Blue”。我想使用 for 回圈,但我被卡住了如何為每次出現添加邏輯。
對于偶數,我希望它列印“Hello”,并且我已經使用模數解決了這個問題。
現在,我希望紅色、綠色和藍色從不同的位置開始,但在它們各自的起點 1、3 和 5 處遵循相同的方程:“x 6”。
我不確定如何將陣列中的值分配給 for 回圈的“i”變數
目標:
能夠為每個偶數列印“Hello”。
能夠在 = {1, 7, 13, 19} 處列印“紅色”。
能夠在 = {3, 9, 15, 21} 處列印“綠色”。
能夠在 = {5,11,17,23} 處列印“藍色”。
我在 C 中的代碼:
int main ()
{
int i,j,k,m;
int R[] = {1,7,13,19};
int G[] = {3,9,15,21};
int B[] = {5,11,17,23};
for (i = 0; i < 24; i )
{
/* Even Numbers */
if (i % 2)
{
printf("Hello\n", i);
}
/* Odd Numbers */
if (i % 2 == 1)
{
for (j = 0; j < 4; j )
{
/* Red */
if (i = R[j])
printf("Red\n", i);
}
for (k = 0; k < 4; k )
{
/* Green */
if (i = G[k])
printf("Green\n", i);
}
for (m = 0; m < 4; m )
{
/* Blue */
if (i = B[m])
printf("Blue\n", i);
}
}
}
return 0;
}
樣本輸出:
0 Hello
1 Red
2 Hello
3 Green
4 Hello
5 Blue
6 Hello
uj5u.com熱心網友回復:
如果我理解正確,您需要以下內容
#include <stdio.h>
int main( void )
{
enum { Red = 1, Green = 3, Blue = 5 };
for ( unsigned int i = 0; i < 24; i )
{
if ( i % 2 == 0 )
{
printf( "%u %s\n", i, "Hello" );
}
else
{
switch( i % 6 )
{
case Red:
printf( "%u %s\n", i, "Red" );
break;
case Green:
printf( "%u %s\n", i, "Green" );
break;
case Blue:
printf( "%u %s\n", i, "Blue" );
break;
}
}
}
}
程式輸出為
0 Hello
1 Red
2 Hello
3 Green
4 Hello
5 Blue
6 Hello
7 Red
8 Hello
9 Green
10 Hello
11 Blue
12 Hello
13 Red
14 Hello
15 Green
16 Hello
17 Blue
18 Hello
19 Red
20 Hello
21 Green
22 Hello
23 Blue
或者,如果您想在兩個連續輸出之間插入一個空行,那么只需在 printf 呼叫的格式字串中再添加一個換行符 '\n',例如
printf( "%u %s\n\n", i, "Hello" );
^^^^^
另一種方法如下
#include <stdio.h>
int main( void )
{
const char * color[] = { "Hello", "Red", "Green", "Blue" };
for ( unsigned int i = 0; i < 24; i )
{
if ( i % 2 == 0 )
{
printf( "%u %s\n", i, color[0] );
}
else
{
printf( "%u %s\n", i, color[i % 6 / 2 1] );
}
}
}
程式輸出與上圖相同。
uj5u.com熱心網友回復:
我希望這是你想要的
#include <stdio.h>
int main() {
int i=1;
int j=3;
int k=5;
for(int m=0;m<24;m ){
if(m%2==0){
printf("%d hello\n",m);
}
if(m==i){
printf("%dred\n",m);
i=i 6;
}
if(m==j){
printf("%dgreen\n",m);
j=j 6;
}
if(m==k){
printf("
轉載請註明出處,本文鏈接:https://www.uj5u.com/net/507316.html