源代碼:
#include<stdio.h>//頭檔案
int main()//主函式入口
{
printf(" **** ****\n");//列印第一行
printf(" ********* *********\n");//列印第二行
printf("************* *************\n");//列印第三行
int i,j;//定義變數
for(i=0;i<3;i++)//列印4-6行,一共3行,因此i小于3
{
for(j=0;j<29;j++)//限制每行輸出*的個數
{
printf("*");//這三行只列印*號,無空格輸出
}
printf("\n");//列印完一行需要進行換行
}
for(i=0;i<7;i++) //列印7-13行,一共7行,因此i小于7
{
for(j=0;j<2*(i+1)-1;j++)//這個for回圈和下面的for是并列的
{
printf(" ");//列印空格
}
for(j=0;j<27-i*4;j++)//讀者可以帶入幾個數找出條件
{
printf("*");//列印*
}
printf("\n");
}
for(i=0;i<14;i++)//列印最后一行的*
{
printf(" ");//列印空格
}
printf("*\n") ;//列印*
return 0;
}
第二種表白源代碼演示:
#include<stdio.h>//頭檔案
#include<math.h>//為了參考pow函式
int main()//主函式入口
{
float y, x, z;//定義浮點型變數
printf("獨時想起你\n");//提示陳述句
printf("落淚時想摟住你\n");//提示陳述句
printf("開心時想撲向你\n");//提示陳述句
printf("興奮時想吻你\n");//提示陳述句
printf("一切盡在這三個字簽名沒有簽上\n");//提示陳述句
printf("\n");//換行
for (double y = 2.5; y >= -1.6; y = y - 0.2)
{
for (double x = -3; x <= 4.8; x = x + 0.1)
{
//下面是個三目運算,讀者請仔細看下,||這個是或
(pow((x*x + y*y - 1), 3) <= 3.6*x*x*y*y*y
|| (x>-2.4 && x<-2.1 && y<1.5 && y>-1)
|| (((x<2.5 && x>2.2) || (x>3.4 && x<3.7)) && y>-1 && y<1.5)
|| (y>-1 && y<-0.6 && x<3.7 && x>2.2)) ? printf("*") : printf(" ");
}
printf("\n");//換行
}
getchar();
return 0;//函式回傳值為0
}
問題:該代碼有bug,求幫忙看看,如果可以,順便幫忙解釋下代碼的含義,非常感謝。
萌新小白,一臉迷茫
-

求解答————
uj5u.com熱心網友回復:
一個建議:回圈變數用整型。因為浮點數會有微小的誤差,可能導致回圈次數跟預想的不同。比如
for (int i=0; i<21; i++)
{
double y = 2.5 - i * 0.2;
....
}
轉載請註明出處,本文鏈接:https://www.uj5u.com/houduan/252764.html
標籤:C語言
上一篇:求助,ARM使用UDP,通過交換機后,可以ping通,但是接收不到資料。求指點,感謝感謝
下一篇:break只能用于回圈陳述句中?
