幫你寫好了
語法:
#include <conio.h>
#include <stdio.h>
#include <stdlib.h>
using namespace std;
int num=1,i,j,n; //num計數數字 i表示幾顆星 j計數用 n上下半部計數用
int max,x; //max菱形直徑 x菱形半徑
char lr;
void PrintNum();
int main(int argc, char *argv[])
{
printf("請輸入菱形直徑:");
scanf("%d",&max);
printf("請輸入缺角處:左上右下請按[1]/右上左下請按[2]");
lr=getch();
printf("\n");
x=max/2+1;
i=-1;
for(n=1;n<=x;n++){ //上半部
i=i+2;//上半部 是遞增
for(j=1;j<=x-n;j++) printf(" ");
PrintNum();
printf("\n");
}
if(lr=='1') lr='2';
else lr='1';
for(n=x-1;n>=1;n--){ //下半部
i=i-2;//因為接下來是遞減
for(j=1;j<=x-n;j++) printf(" ");
PrintNum();
printf("\n");
}
system("PAUSE");
return EXIT_SUCCESS;
}
void PrintNum()
{
if(lr=='1') for(j=1;j<=i-n;j++) printf("*"); //選左上右下時先印 *
for(j=1;j<=n;j++){ //依序填 1、2、5、7、9、1...
printf("%d",num);
num=num+2;
if(num>9) num=1;
}
if(lr=='2') for(j=1;j<=i-n;j++) printf("*"); //選右上左下時後印 *
// printf("%d",n); //除錯用
}