1. 如何用c語言列印空心菱形(要求for循環)
題目錯了吧,如果你輸入偶數就不會有◇啊,只有這個題目
由鍵盤輸入正數n,要求輸出2*n+1行的菱形圖案,要求菱形左邊緊靠屏幕左邊
#include "stdio.h"
main()
{ int i,j;
int n;
scanf("%d",&n);
for(i=0;i<=n+1;i++)
{ for(j=n-i;j>=0;j--)
printf(" ");
for(j=0;j<i;j++)
printf("* ");
printf("\n"); }
for(i=0;i<n;i++)
{ for(j=0;j<i+1;j++)
printf(" ");
for(j=n-i;j>0;j--)
printf("* ");
printf("\n"); }
getch();
}
2. c語言輸出菱形
工具/材料
ubuntu+vim+gcc
- 01
首先,輸入預處理指令#include <stdio.h>與函數原型void print(int n)。
其中,n表示行數。 - 02
然後,對輸入的n進行提前判斷,若小於0或為偶數,則結束列印。
- 03
接著對上半個菱形進行輸出(包括最長的行)。使用兩層循環進行輸出,分別控制行數與行內的位置。
- 04
接著對下半個菱形進行輸出(包括最長的行)。也使用兩層循環進行輸出,分別控制行數與行內的位置。
- 05
對n=5與n=7進行輸出測試,代碼如下。
- 06
編譯運行後的結果如下
- 07
以下是所有的代碼:
#include <stdio.h>
void print(int n)
{
//判斷n是否符合正奇數的要求
if(n < 0 || n % 2 == 0)
//不符合則直接退出
return;
//對上半個菱形輸出
int i = 1,j = 1;
//i控制行數
for(i = 1; i <= (n + 1) / 2; i++)
{
//j控制每一行的位置
//輸出空格
for(j = 1; j <= (n+1)/2 - i; j++)
printf(" ");
//輸出*
for(j = 1; j <= 2 * i - 1; j++)
printf("*");
//輸出換行
printf(" ");
}
//輸出下一半
//i控制行數
for(i = 1; i <= n/2; i++)
{
//j控制每一行的位置
//輸出空格
for(j = 1; j <= i; j++)
printf(" ");
//輸出*
for(j = 1; j <= n -2 * i; j++)
printf("*");
//輸出換行
printf(" ");
}
}
//測試函數,測試n=5和n=7
int main()
{
printf("5 ");
print(5);
printf("7 ");
print(7);
return 0;
}
3. 用c語言中的for循環輸出菱形
#include <stdio.h>
int main()
{
int A=3;
scanf("%d",&A);
int i,j,x,a,b,c,d,e,f,g;
for(i=1;i<=A+1;i++)
{
for(x=A;x>=i;x--)
{
printf(" ");
}
for(a=1;a<=i;a++)
{
printf("*");
}
for(b=0;b<=i-2;b++)
{
printf("*");
}
for(c=A;c>=i;c--)
{
printf(" ");
}
printf("\n");
}
for(j=1;j<=A;j++)
{
for(d=1;d<=j;d++)
{
printf(" ");
}
for(e=A;e>=j;e--)
{
printf("*");
}
for(f=A-1;f>=j;f--)
{
printf("*");
}
for(g=0;g<=j-1;g++)
{
printf(" ");
}
printf("\n");
}
return 0;
}
要打出圖片題目中所示菱形,只需run下程序,輸入3即可(即input A=3)。代碼中的那個A可以理解為菱形的橫對角線的*的數量減1後的一半。以上代碼適合初學者,因為我也是個初學者,對於C語言高手來說,我這個復雜了,我的思路是四個小三角形拼出一個菱形的。。。你run下看可不可以?然後由於這個答案輸出框的條件限制,輸出的格式,如空格換行等那些會沒顯示到
4. 用c語言編寫一段程序,輸出菱形圖案
main()
{
inti,j,k;
for(i=0;i<=3;i++)
{
for(j=0;j<=2-i;j++)
printf("");
for(k=0;k<=2*i;k++)
printf("*");
printf(" ");
}
for(i=0;i<=2;i++)
{
for(j=0;j<=i;j++)
printf("");
for(k=0;k<=4-2*i;k++)
printf("*");
printf(" ");
}
}
5. 如何用c語言編寫程序,列印一個空心菱形,用循環寫
#include <stdio.h>
int main(void){
int i,j,k;
//上半空心菱形
for(i=1;i<=10;i++){ //控制行數 10行
for(k=10;k>i;k--){ //第一行 9空格1* i=2 8空格 2*
printf(" ");
}
//當i=1時 由第25行代碼輸出*
if(i == 1){}
else{
printf(" *");
}
//空心空格個數列印 0 2 4 6 16個
for(j=1;j<2*i-2;j++){
printf(" ");
}
printf(" *");
printf("
");
}
//下空心菱形
for(i=1;i<=9;i++){ //去掉最長行 只有9行
//空格增多 1 2 3...9
for(k=1;k<=i;k++){
printf(" ");
}
//最後一行*號由代碼43行執行
if(i == 9){}
else{
printf(" *");
}
//空心空格個數列印 15 13 ....1 注意空格是15開始 1結束
for(j=1;j<=17-2*i;j++){ //i=9時候 列印0個空格
printf(" ");
}
printf(" *"); //列印每行後出現的*
printf("
");//換行
}
}
6. 用c語言for循環列印空心菱形有什麼思路
先打上正三角形,後打下倒三角形,倒三角形少一行最長行。
每一行無論打多少符號,都只打第一個和最後一個,中間全用空格代替。
變成代碼如下,注意看注釋。
#include"stdio.h"
#defineN7
intmain(void){
inti,j,t;
for(i=1;i<=N;i++){//上三角形行循環
for(j=0;j<39-i;printf(""),j++);//把游標右移到該行第一個符號的列
t=(i<<1)-1;//算出最後一個符號的列t
for(j=1;j<=t;j++)//當前行的列印循環
printf("%c",(j==1||j==t?'*':''));//由j==1||j==t判斷該打'*'還是''
printf(" ");//打完一行要回車
}
for(i=N-1;i>0;i--){//下三角形少一行最長的,所以i從N-1開始到1
for(j=0;j<39-i;printf(""),j++);
t=(i<<1)-1;
for(j=1;j<=t;j++)
printf("%c",(j==1||j==t?'*':''));
printf(" ");
}
return0;
}
7. C語言編程,用一個for循環列印菱形
# include<stdio.h>
# include<stdlib.h>
void main()
{
int i,j,a,b,n;
printf("please enter size");
scanf("%d",&n);
for(i=1;i<n;i++)
{
for(j=1;j<=n+i-1;j++)
if(j==n-i+1 ||j==n+i-1)
printf("*");
else
printf(" ");
printf("\n");
}
for(i=1;i<=2*n-1;i++)
printf("*");
printf("\n");
for(a=1;a<n;a++)
{
for(b=1;b<=2*n-a-1;b++)
if(b==n-(n-a-1)||b==2*n-a-1)
printf("*");
else
printf(" ");
printf("\n");}
}
主要考慮用for循環來解決問題,把菱形分成兩部分,先列印第一部分,然後列印第二部分。
8. 用c語言 for循環列印菱形 看圖
#include<stdio.h>
#include<stdlib.h>
int main()
{
int n,i,j;
scanf("%d",&n);
for(i=1-n;i<=n-1;i++)
{
for(j=0;j<abs(i);j++)
printf(" ");
for(j=0;j<2*(n-abs(i))-1;j++)
printf("*");
printf("
");
}
return 0;
}
9. C語言,列印菱形【嵌套循環】
#include<stdio.h>
voidmain()
{
inti,j,m,n;
scanf("%d",&n);
for(i=n;i>=-n;i--)
{
m=i;if(m<0)m=-m;
for(j=0;j<n*2+1;j++)
if(j==m||j==n*2-m)
printf("*");
elseprintf(".");
printf(" ");
}
}