Ⅰ c語言編程列印菱形的數字圖表
#include "stdio.h"
int main() {
int n,i,j;
while(scanf("%d",&n)) {
for(i=1; i<=n; i++) {
for(j=1; j<=n-i; j++) //畫空格
printf(" ");
for(j=1; j<=i; j++)
printf("%d",j);//輸出從1到n
for(j=i-1; j>=1; j--)
printf("%d",j);//輸出從n-1到1
printf(" ");
}
for(i=n-1; i>=1; i--) {
for(j=1; j<=n-i; j++) //畫空格
printf(" ");
for(j=1; j<=i; j++)
printf("%d",j);//輸出從1到n
for(j=i-1; j>=1; j--)
printf("%d",j);//輸出從n-1到1
printf(" ");
}
}
return 0;
}
(1)c語言打出10行的菱形擴展閱讀:
書寫規則
1、一個說明或一個語句佔一行。
2、用{} 括起來的部分,通常表示了程序的某一層次結構。{}一般與該結構語句的第一個字母對齊,並單獨佔一行。
3、低一層次的語句或說明可比高一層次的語句或說明縮進若干格後書寫。以便看起來更加清晰,增加程序的可讀性。在編程時應力求遵循這些規則,以養成良好的編程風格。
網路-c語言
Ⅱ C語言列印菱形詳細講解
/*下面的程序是菱形列印的【終結者】,
改變下設置,就基本可以滿足所有菱形列印的題目。
程序主體 for 語句只有9行,簡單而強大
*/
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
// 這個小函數用來輸出 repeatTimes 個字元 c
void printChar(char c,int repeatTimes)
{
int i;
for(i=0;i<repeatTimes;i++)
printf("%c",c);
}
/*
特別的函數,獲取當前要列印的下一個菱形圖案
height : 菱形的高
shapeVariantStep : 變化的步數
baseShape : 菱形的基本圖案
row : 當前列印的菱形圖案的行坐標。
col : 當前列印的菱形圖案的列坐標。
*/
char _buffer_[2]={0};
char* getShape(int height,int shapeVariantStep,char baseShape[],int row,int col)
{
int first = baseShape[0],last = first +(height-1)/2*shapeVariantStep;
if(shapeVariantStep==0 || strlen(baseShape)!=1)
return baseShape;
else
{
if( first>='0'&&first<='9'&&last<='9' ||
first>='a'&&first<='z'&&last<='z' ||
first>='A'&&first<='Z'&&last<='Z'
)
{
_buffer_[0] = first + ((height-2*abs(row)-1)/2 - abs(col))*shapeVariantStep;
_buffer_[1] = '\0';
return _buffer_;
}
else
{
return baseShape;
}
}
}
int main(int argc, char *argv[])
{
// 菱形的圖案
char shape[]="*";
// 菱形圖案間的空白圖案
char space=' ';
// 每個圖案之間的最小間隔(以一個字元為單位,不足用空白圖案填充)
int interval=5;
// 菱形的高(要求是奇數)
int height=7;
// 菱形是否空心(只有邊上的圖案)。是:1,否 0
int isHollow=0;
/* 特別的參數:設定菱形的圖案是變化。
只有指定 shape 為 :
"0","1",...,"9",
或者 "a","b",...,"z",
或者 "A","B",...,"Z" 其中之一,
並且要保證從指定圖形開始,後面至少還有連續的:
(height-1)/2*shapevariantStep
個可選的圖形,菱形的圖形才會是可變的。
*/
int shapeVariantStep = 0;
int i,j,k,n;
interval = interval < strlen(shape)?strlen(shape):interval;
for(i=-(height-1)/2;i<=(height-1)/2;i++)
{
// 用來輸出每行前的空白
printChar(space,abs(i)*interval);
// 這個 for(j) 語句用來輸出每行的菱形圖案
for(j=-(height-2*abs(i)-1)/2;j<=(height-2*abs(i)-1)/2;j++)
{
// 如果是非空心,輸出所有圖案;否則只輸出兩端的圖案。
if(!isHollow || (isHollow && (j==0 || j==height-2*abs(i)-1)))
{
n=printf("%s",getShape(height,shapeVariantStep,shape,i,j));
// 補齊為到寬度為 interval
printChar(space,interval-n);
}
// 對於空心的菱形,在本應該輸出圖案的地方,輸出空白。
else
{
printChar(space,interval);
}
}
// 這個 for(j) 語句用來輸出每行後的空白
printChar(space,abs(i)*interval);
printf("\n");
}
return 0;
}
/*
運行結果:
shape[]="*";
space[]=" ";
interval=5;
height=7;
isHollow=0;
shapevariantStep = 0
*
* * *
* * * * *
* * * * * * *
* * * * *
* * *
*
shape[]="**";
space[]=" ";
interval=5;
height=7;
isHollow=0;
shapevariantStep = 0
**
** ** **
** ** ** ** **
** ** ** ** ** ** **
** ** ** ** **
** ** **
**
shape[]="*";
space[]=" ";
interval=5;
height=7;
isHollow=0;
shapevariantStep = 0
...............*...................
..........*....*....*..............
.....*....*....*....*....*.........
*....*....*....*....*....*....*....
.....*....*....*....*....*.........
..........*....*....*..............
...............*...................
shape[]="*";
space[]=" ";
interval=0;
height=7;
isHollow=0;
shapevariantStep = 0
*
***
*****
*******
*****
***
*
shape[]="*";
space[]=" ";
interval=5;
height=11;
isHollow=0;
shapevariantStep = 0
*
* * *
* * * * *
* * * * * * *
* * * * * * * * *
* * * * * * * * * * *
* * * * * * * * *
* * * * * * *
* * * * *
* * *
*
shape[]="*";
space[]=" ";
interval=5;
height=7;
isHollow=1;
shapevariantStep = 0
*
* *
* *
* *
* *
* *
*
shape[]="A";
space[]=" ";
interval=5;
height=17;
isHollow=0;
shapevariantStep = 1
A
A B A
A B C B A
A B C D C B A
A B C D E D C B A
A B C D E F E D C B A
A B C D E F G F E D C B A
A B C D E F G H G F E D C B A
A B C D E F G H I H G F E D C B A
A B C D E F G H G F E D C B A
A B C D E F G F E D C B A
A B C D E F E D C B A
A B C D E D C B A
A B C D C B A
A B C B A
A B A
A
shape[]="a";
space[]=" ";
interval=5;
height=17;
isHollow=0;
shapevariantStep = 1
a
a b a
a b c b a
a b c d c b a
a b c d e d c b a
a b c d e f e d c b a
a b c d e f g f e d c b a
a b c d e f g h g f e d c b a
a b c d e f g h i h g f e d c b a
a b c d e f g h g f e d c b a
a b c d e f g f e d c b a
a b c d e f e d c b a
a b c d e d c b a
a b c d c b a
a b c b a
a b a
a
shape[]="1";
space[]=" ";
interval=5;
height=9;
isHollow=0;
shapevariantStep = 2
1
1 3 1
1 3 5 3 1
1 3 5 7 5 3 1
1 3 5 7 9 7 5 3 1
1 3 5 7 5 3 1
1 3 5 3 1
1 3 1
1
*/
Ⅲ c語言輸出菱形
#include<stdlib.h>
#include<stdio.h>
intmain()
{
intnum,i,j=1,k;
charletter_A=65;
printf("Pleaseinputanoddnumber:");
scanf("%d",&num);
if(num%2==0)
{
printf("! ");
return0;
}
while(j<=num)
{
for(k=0;k<((num-j)/2);k++)
printf("%c",32);
for(i=0;i<j;i++)
{
printf("%c",letter_A+i);
}
printf(" ");
letter_A++;
j+=2;
}
j-=4;
letter_A-=2;
while(j>0)
{
for(k=0;k<((num-j)/2);k++)
printf("%c",32);
for(i=0;i<j;i++)
{
printf("%c",letter_A+i);
}
printf(" ");
letter_A--;
j-=2;
}
printf(" ");
return0;
}
Ⅳ 用c語言用*打出菱形
#include<stdio.h>
//列印n個空格函數
voidprintspace(intn)
{
intj;
for(j=1;j<=n;j++)
printf("");
}
//列印一個*函數
voidprintstar()
{
printf("*");
}
//換行函數
voidchangeline()
{
printf(" ");
}
voidmain()
{
inti=0;
printspace(4);//此三行代碼
printstar();//列印出
changeline();//第一個*
//此循環列印出第二行到第八行的*,每行有兩個(最後結果見截圖)
for(i=2;i<9;i++)
{
if(i<=5)//列印每行的第一個*之前先列印|5-i|(絕對值)個空格
printspace(5-i);
else
printspace(i-5);
printstar();//列印每行的第一個*
if(i<=5)//列印每行的第二個*之前先列印相應個數的空格
printspace(2*i-3);
else
printspace(17-2*i);
printstar();//列印每行的第二個*
changeline();//換行
}
printspace(4);//此三行代碼
printstar();//列印出
changeline();//最後一個*
}
運行結果:
Ⅳ c語言 輸入一個字元串,輸出菱形樣式圖案,每行包含各子串。
#include <stdio.h>
#include <string.h>
#include <stdlib.h>
int main()
{
int n,i;
char s[100];
scanf("%s",s);
n=strlen(s);
for(i=0;i<n;++i)
s[n+i]=s[n-i-1];
s[n+i]='