編譯菱形
#include<stdio.h>
void main()
{
int i,j,k;
for(i=1;i<=4;i++) //先列印上邊的四行
{
for(j=1;j<=4-i;j++) //控制要列印的空格數量
printf(" ");
for(k=1;k<=2*i-1;k++) //控制要列印的星號數
printf("*");
printf("
");
}
for(i=1;i<=3;i++)
{
for(j=1;j<=i;j++) //控制要列印的空格數
printf(" ");
for(k=1;k<=7-2*i;k++) //控制要列印的星號數
printf("*");
printf("
");
}
}
(1)編譯菱形擴展閱讀:
for循環
for循環結構是c語言中最具有特色的循環語句,使用最為靈活方便,它的一般形式為:
for(表達式1;表達式2;表達式3)循環體語句 。(其中;不能省略)
表達式
表達式1為初值表達式,用於在循環開始前為循環變數賦初值。
表達式2是循環控制邏輯表達式,它控制循環執行的條件,決定循環的次數。
表達式3為循環控制變數修改表達式,它使for循環趨向結束。
循環體語句是在循環控制條件成立的情況下被反復執行的語句。
但是在整個for循環過程中,表達式1隻計算一次,表達式2和表達式3則可能計算多次,也可能一次也不計算。循環體可能多次執行,也可能一次都不執行。
先執行表達式2,然後執行循環結構,最後表達式3,一直這樣循環下去。
for循環語句是c語言種功能最為強大的語句,甚至在一定程度上可以代替其他的循環語句。
do
do循環結構,do 1 while⑵;的執行順序是1->2->1...循環,2為循環條件。
while
while循環結構,while(1) 2; 的執行順序是1->2->1...循環,1為循環條件
以上循環語句,當循環條件表達式為真則繼續循環,為假則跳出循環。
⑵ sublime text3 編譯並運行java,報錯時亂碼
那個是字元集亂碼,你可以設置編碼集為UTF-8就可以解決了!!
⑶ c語言程序設計輸出菱形圖!!!!
此題解法,我將這個菱形放在了一個二維數組中,因為用二維數組可以界定X的邊界,比較方便一點。循環輸出的時候,特別注意循環跳出的條件,你畫個二維數組,體會一下裡面的數學關系,多上機改改代碼,呵呵。要特別注意q的用途哦。
#include<stdio.h>
voidmain()
{
#defineN7//定義二維數組的行和列
inti,j;
chara[N][N];
intq=N/2;//找到數組的中間列
chart,p;//定義輸出字元,t代表X,p代表Y
printf("qingshuruX,Y: ");
scanf("%c,%c",&t,&p);//注意此處輸入的時候,不要忘記「,」了哦
for(i=0;i<N;i++)//將二維數組的值全部先賦值為「空格」
for(j=0;j<N;j++)
a[i][j]='';
for(i=0;i<q;i++)//將菱形一分兩半,這個是上半部分的輸出,以中間列
{
//為開始,向兩邊擴展,為了輸出X,注意i循環到q-1
a[i][q-i]=t;
a[i][q+i]=t;
for(j=(q-i+1);j<(q+i);j++)//以兩邊的X列為邊界,輸出Y
a[i][j]=p;
}
for(i=q;i<N;i++)//這個是下半部分的輸出,i從q開始循環到最後
{
a[i][q-(N-1-i)]=t;//仍然是從中間列開始向兩邊擴散,輸出X
a[i][q+(N-1-i)]=t;
for(j=(q-(N-1-i)+1);j<(q+(N-1-i));j++)//從X邊界開始從做到右輸出Y
a[i][j]=p;
}
for(i=0;i<N;i++)
{
{for(j=0;j<N;j++)
printf("%c",a[i][j]);}
printf(" ");
}
}
我這里輸出的是標準的菱形,中間的Y的個數和你給的不一樣,如果你想要你的那種結果,只需要在輸出Y的時候,將循環的邊界再減一個,就可以了,不過圖形是會變形,不會是菱形了。
上機運行的時候,把這些漢字清理了吧,要不可能編譯出問題,好運~
⑷ C++菱形繼承,編譯不過,為什麼
菱形繼承會出現頂層基類的重復初始化,舉例說來: 類B繼承類A,類C繼承類A,類D繼承類B和類C,這就是一個菱形結構,那麼類A就會被初始化兩次,為了防止這樣的情況,就採用虛繼承。
⑸ C++中如何避免菱形繼承引發的警告錯誤(VS2005編譯器)。
虛繼承。
更一般的,使用聚合代替繼承。
⑹ c語言輸出空心菱形
void
main()
{
//輸入任意一個100以內奇數n,輸出一個n層菱形
int
i,
j;
int
row;
//輸入的奇數(菱形的行數)
int
leftcol;//左邊空格的列數;
int
center;//奇數的平均值
//此例以21為例
row
=
21;
center
=
row/2;
leftcol
=
center;
//菱形上半部分
for
(i=0;
i<center+1;
i++)
{
for
(j=0;
j<center-i;
j++)
{
printf("
");
}
for
(j=0;
j<=2*i;
j++)
{
printf("*");
}
printf("\n");
}
//菱形下半部分
for
(i=center;
i>0;
i--)
{
for
(j=center-i+1;
j>0;
j--)
{
printf("
");
}
for
(j=2*i-1;
j>0;
j--)
{
printf("*");
}
printf("\n");
}
return;
}
測試成功了,直接編譯運行即可
⑺ C++如何列印菱形
C++ 代碼如下:
#include <iostream>
using namespace std;
int main()
{
int n;
cin>>n;
cout<<"要得到的菱形的大小:"<<endl;
for(int i=1;i<=n;++i)
{
for(int j=1;j<=n-i;++j)
cout<<" ";
for(j=1;j<=i;++j)
cout<<"* ";
cout<<endl;
}
for( i=n;i>=1;--i)
{
for(int j=1;j<=n-i;++j)
cout<<" ";
for(j=1;j<=i;++j)
cout<<"* ";
cout<<endl;
}
return 0;
}
c++列印菱形圖示例圖:
1、上半層:
(7)編譯菱形擴展閱讀:
製作思路:
1、先來分析分割線上半部分的規律:
上半部分外層循環了4次,可以用一個循環來解決for(int i=0 ;i<4 ;i++)。
對比分析:
第一輪循環i=0的時候空格的列印次數是3,星星列印的次數是1
第二輪循環i=1的時候空格的列印次數是2,星星列印的次數是3。。
第三輪循環i=2的時候空格的列印次數是1,星星列印的次數是5。
第四輪循環i=3的時候空格的列印次數是0,星星列印的次數是7。
空格列印的循環次數隨著外層循環次數的增加而減少,這樣就很明顯看出空格列印的循環和外層循環的規律:for(int j=0;j<3-i;j++)。
星星列印增加循環次數都是外層循環的次數增加次數的2倍,這樣就很明顯看出星星列印的循環和外層循環的規律:for(int k=0;k<1+2*i;k++)。
2、再來就是分析分割線下半部分的規律:
下半部分外層循環了3次,可以用一個循環來解決for(int i=0 ;i<3 ;i++)
第一輪循環i=0的時候空格的列印次數是1,星星列印的次數是5。
第二輪循環i=1的時候空格的列印次數是2,星星列印的次數是3。
第三輪循環i=2的時候空格的列印次數是3,星星列印的次數是1。
空格列印的循環次數隨著外層循環次數的增加而增加,這樣就很明顯看出空格列印的循環和外層循環的規律:for(int j=0;j<1+i;j++)
星星列印循環次數隨外層循環的增加而減少,減少的規律是外層增加的2倍,這樣就很明顯看出星星列印的循環和外層循環的規律:for(int k=0;k<5-2*i;k++)。
⑻ C語言 數字金字塔 "*"號擺成菱形
#include<stdio.h>
main()
{
int i,l,k,y;
printf("輸入圖1或圖2\n");
scanf("%d",&y);
if(y==1)
{
printf("輸入得數不要超過10\n");
scanf("%d",&k);
if(k>=1&&k<10)
{
for(i=1;i<=k;i )
{
for(l=0;l<i;l )
printf("%d",i);
printf("\n");
}
}
}
if(y==2)
{
printf("輸入的數不要超過10\n");
scanf("%d",&k);
if(k>=1&&k<10)
{
for(i=1;i<=k;i )
{
for(l=0;l<i;l )
printf("*");
printf("\n");
}
for(i=1;i<=k-1;i )
{
for(l=0;l<k-i;l )
printf("*");
printf("\n");
}
}
}
}
⑼ 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;
}
⑽ c語言數字菱形的程序設計
#include <stdio.h>
void main()
{
int i,j;
for(i=1;i<=9;i++)
{
for(j=1;j<=i;j++)
printf("%d",i);
printf("\n");
}
for(i=8;i>0;i--)
{
for(j=1;j<=i;j++)
printf("%d",i);
printf("\n");
}
}
不要一遇到問題就來問,這種這么簡單首先要自己思考啦