<1>第一種方法,利用字符數(shù)組定義一個空格數(shù)組和一個符號數(shù)組,
在東方等地區(qū),都構建了全面的區(qū)域性戰(zhàn)略布局,加強發(fā)展的系統(tǒng)性、市場前瞻性、產(chǎn)品創(chuàng)新能力,以專注、極致的服務理念,為客戶提供網(wǎng)站建設、網(wǎng)站制作 網(wǎng)站設計制作按需制作網(wǎng)站,公司網(wǎng)站建設,企業(yè)網(wǎng)站建設,成都品牌網(wǎng)站建設,營銷型網(wǎng)站,成都外貿(mào)網(wǎng)站建設公司,東方網(wǎng)站建設費用合理。
然后找到數(shù)組中間的元素,操作空格字符從中間開始向兩邊與符號數(shù)組的元素互換,
每互換一次進行一次輸出,打印上半個菱形和下半個菱形需要兩個for語句的支持。
源代碼如下:
#include
#include
#include//為了使用延時語句Sleep而調(diào)用
int main()
{
char suu1[] = "*****************************************";//符號語句
char suu2[] = " ";//空格語句
int right, left=0, mid;
right = strlen(suu2)-1;
mid = left + (right - left) / 2;
for (left = mid , right = mid ; left >= 0&&right<=strlen(suu2)-1 ; left--, right++)//上半部分打印
{
suu2[left] = suu1[left];
suu2[right] = suu1[right];
printf("%s\n", suu2);
Sleep(600);//延時操作
}
for (left = 0, right = strlen(suu1)-1; left <=mid && right >=mid; left++, right--)//下半部分打印
{
suu2[left] = ' ';
suu2[right] = ' ';
printf("%s\n", suu2);
Sleep(600);
}
system("pause");
return 0;
}
這種方法較為淺顯易懂,但缺點是菱形的大小是通過所定義的字符數(shù)組的長度來定義的,不是特別靈活。
<2>
第二種方法算法上相比第一種較為復雜,但是可操控性比較高,主要是通關觀察來得到所打印符號的行,列和符號個數(shù)之間的數(shù)學關系來打印。
源代碼如下:
#include
#include
int main()
{
int line = 0,m,k;
scanf("%d", &line);//通過輸入來確定菱形的大小
int i = 0;
for (i = 0; i < line; i++)//上半部分打印
{
for (m = 0; m
運行結果實例: