int i,j,k;
int sayi=1;
for(i=1; i<=sayi; i =2){
printf("%d",i);
printf("a");
printf("%d",i 2);
printf("a");
printf("%d",i 4);
printf("a");
printf("\n");
for(j=1; j<=sayi; j =2)
printf("%d",i);
printf("a");
printf("%d",i 2);
printf("a");
printf("%d",i 4);
printf("\n");
for(k=1; k<=sayi; k =2)
printf("%d",i);
printf("a");
printf("%d",i 2);
printf("a");
printf("\n");
printf("%d",i);
printf("a");
printf("%d",i 2);
printf("\n");
printf("%d",i);
printf("a");
printf("\n");
printf("%d",i);
}

我需要在數字之間添加字母“a”,因為數字以 1-3-5 的形式連續移動。我正在嘗試使用嵌套的 for 回圈在螢屏上獲取輸出。但我認為它的位路徑比我的方法短得多,我該怎么做?
uj5u.com熱心網友回復:
您已經在使用嵌套for回圈。不幸的是,您沒有正確使用它們。
for(j=1;j<=sayi;j =2)
for(k=1;k<=sayi;k =2)
由于括號 { 和 },它們都嵌套在“for(i=1; i<=sayi;i =2)”中。這些內部回圈只有一行,因為您沒有使用方括號來定義它們的開始和結束位置,因此編譯器的規則會自動默認它們只包含回圈后面的一行有效代碼。
您在示例中的 3 個回圈實際上都不是作為回圈運行的,因為您沒有遞增“sayi”變數并且它為 1。當您將“i”、“j”和“k”也分配給 1 時,并將其與“小于或等于”比較的“sayi”進行比較,它們運行是因為它是真的,但是當您將回圈變數增加 2 時,它們變為 3 并且“小于或等于”比較失敗,所以回圈只運行一次。
為了縮短這個,你需要學習很多東西:
該if宣告是其中的主要部分。https://www.cprogramming.com/tutorial/c/lesson2.html
回圈實際上是如何作業的。https://www.freecodecamp.org/news/for-loops-in-c/
數學、賦值和條件運算子。https://www.programiz.com/c-programming/c-operators
我提供的鏈接只是建議的起點。還有更多要學習的東西。我與那些網站或發布它們的人沒有任何聯系。它們只是我查看的第一個搜索結果中最好的。
這是您嘗試撰寫的代碼的我的版本。
int start = 6;
for (int i = start; i > 0; i--)
{
for (int j = 1; j <= i; j )
{
if (j % 2 == 1)
{
printf("%d", j);
}
else
{
printf("a");
}
}
printf("\n");
}
可以肯定的是,這可以進一步減少,但我認為這對你來說是一個足夠好的起點。
uj5u.com熱心網友回復:
這應該有效。我發表了一些評論來解釋它。
#include <stdio.h>
int main() {
//up to what number do you want it to go
int n = 5;
for (int i = n; i > 0; i--) { //loops over every line you need to print with i being the length of that line minus 1. I starts at n and ends at 0
for (int j = 1; j <= i; j ) { // loops over every number in that particular line, starting from 1 up to i.
if (j % 2) { //if j is even it prints 'a', otherwise it prints the number
printf("%d", j);
} else {
printf("a");
}
}
printf("\n");
}
}
轉載請註明出處,本文鏈接:https://www.uj5u.com/yidong/408636.html
標籤:
上一篇:用指標取陣列中3個數字的平均值
