㈠ 編程: 輸入n的值,輸出由*組成的菱形(過程詳細點)
用c#寫的程序:
Console.WriteLine("請輸入一個奇數字");
int num = Convert.ToInt32(Console .ReadLine ());
for (int i = 1; i <= (num + 1) / 2; i++)
{
for (int j = 1; j <= (num - (2 * i - 1)) / 2; j++)
{ Console.Write(" "); }
for (int k = 1; k <= 2 * i - 1; k++)
{ Console.Write("*"); }
Console.WriteLine();
}
for (int i = 1; i < (num + 1) / 2; i++)
{
for (int j = 1; j <= i; j++)
{ Console.Write(" "); }
for (int k = 1; k <= num - 2 * i; k++)
{ Console.Write("*");}
Console .WriteLine ();
}
Console.ReadKey();
㈡ 求用c語言編程由組成的菱形圖案
#include<stdio.h>
#include<stdlib.h>
#defineN5//圖案行數
#defineKG(abs(N/2-i))
#defineXH((N/2-abs(N/2-i))*2+1)
voidmain(){inti,j;
for(i=0;i<N;i++){
for(j=0;j<KG;j++)printf("");
for(j=0;j<XH;j++)printf((j>0&&j<XH-1)?(""):("A"));
printf(" ");
}
}
㈢ 用C語言編程輸出*排成的菱形是怎麼編
main(){
int i,j,k;
for(i=0;i<=2;i++){
for(j=0;j<2-i;j++)
printf(" ");
for(k=0;k<=2*i;k++)
printf("*");
printf("\n");
}
for(i=0;i<=1;i++){
for(j=0;j<=i;j++)
printf(" ");
for(k=0;k<=2-2*i;k++)
printf("*");
printf("\n");
}
getch();
}
列印效果是 *
***
*****
***
*
我來給你解釋!
把圖案分為上下兩部分來看.上部分為3行,下部分為2行。
程序中的定義是
for(i=0;i<=2;i++) 這個是外層循環,控制行數的.
再看規律,當再第一行的時候,也就是i=0的時候
接著往下看內層循環.for(j=0;j<2-i;j++)
當i=0時候,i傳進來,也就是for(j=0;j<2;j++)
j能取到2次值0和1,取0時候列印一個空格,取1的時候再打一個空格
此時,i=0的時候列印空格的FOR循環結束,它列印出2個空格.接著進入列印*號的循環.for(k=0;k<=2*i;k++)
i=0時候 k就能取到一次值0所以列印一個*接著上面2個空格的後面
最後回車printf("\n");進入i=1也就是進入上部分第二層的循環.
......
下半部分和上面的意思一樣.自己仔細想明白吧.
我覺得我已經說道極限了..
㈣ C語言編程,用*組成菱形
#include <stdio.h>
#include <stdlib.h>
int main(){
int line=7; // 菱形總行數
int column; // 菱形總列數
int i; // 當前行
int j; // 當前列
printf("請輸入菱形的行數(奇數):7 ");
scanf("%d", &line);
if(line%2==0){ // 判斷是否是奇數
printf("必須輸入奇數! ");
exit(1);
}
column = line; // 總行數和總列數相同
for(i=1; i<=line; i++){ // 遍歷所有行
if(i<(line+1)/2+1){ // 上半部分(包括中間一行)
for(j=1; j<=column; j++){ // 遍歷上半部分的所有列
if( (column+1)/2-(i-1)<=j && j<=(column+1)/2+(i-1) ){
printf("*");
}else{
printf(" ");
}
}
}else{ // 下半部分
for(j=1; j<=column; j++){ // 遍歷下半部分的所有列
if( (column+1)/2-(line-i)<=j && j<=(column+1)/2+(line-i) ){
printf("*");
}else{
printf(" ");
}
}
}
printf(" ");
}
return 0;
}
(4)編程求n3時的菱形擴展閱讀:
C語言書寫規則:
1、一個說明或一個語句佔一行。
2、用{} 括起來的部分,通常表示了程序的某一層次結構。{}一般與該結構語句的第一個字母對齊,並單獨佔一行。
3、低一層次的語句或說明可比高一層次的語句或說明縮進若干格後書寫。以便看起來更加清晰,增加程序的可讀性。在編程時應力求遵循這些規則,以養成良好的編程風格。
網路-c語言
㈤ 用C語言編程 輸出*號排列成的菱形
#include<stdio.h>
intdiffabs(inta,intb){//返回a,b差值的絕對值,即|a-b|
return(a>b)?(a-b):(b-a);
}
voidLozenge(unsignedintn,charc){//a為菱形邊長,b為組成菱形的字元
unsignedinti,j,m;
for(i=0;i<n;i++){
m=diffabs(n/2,i);
for(j=0;j<m;j++)printf("");//輸出每行前導空格
for(j=0;j<2*(n/2-m)+1;j++)printf("%c",c);
printf(" ");
}
}
intmain(){
Lozenge(11,'*');
printf(" ");
return0;
}
㈥ 如何用c語言編程題輸出菱形圖形
#include "stdio.h" void PrintDiamend(int n) { int i,j,k; if(n==0) n=1; for(i=1;i<=n;i++) { for(j=i;j<n;j++) printf(" "); for(k=1;k<i+1;k++) printf("*"); for(k=1;k<i;k++) printf("*"); printf("\n"); } for(i=1;i<n;i++) { for(j=0;j<i;j++) printf(" "); for(k=i;k<n;k++) printf("*"); for(k=i;k<n-1;k++) printf("*"); printf("\n"); } } int main() { PrintDiamend(4); return 0; }
㈦ 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++基礎編程求菱形
#include<iostream>
#include<string>
usingnamespacestd;
voidmain()
{
intn,a,b;
cin>>n;
a=b=n/2;
for(inti=0;i!=n;i++)
{
stringp(n,'');
if(i<n/2)
{
p[a]='*';
p[b]='*';
a-=1;
b+=1;
}
elseif(i==n/2)
{
p[a]='*';
p[b]='*';
}
else
{
a+=1;
b-=1;
p[a]='*';
p[b]='*';
}
cout<<p<<endl;
}
}
㈨ 用C語言編程輸出菱形 圖案
#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("
");
}
}
(9)編程求n3時的菱形擴展閱讀:
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為循環條件
以上循環語句,當循環條件表達式為真則繼續循環,為假則跳出循環。
㈩ 求菱形圖案
#include<iostream>
using namespace std;
#define N 5
int main()
{
int i,j,k,n1,n2,n3;
n1=n2=N;
n3=1;
for (i=0;i<n1;i++) //列印上部分
{
for (j=0;j<n2;j++)
{
cout<<" ";
}
n2=n2-1;
for (k=0;k<n3;k++)
{
cout<<"*";
}
n3=n3+2;
cout<<endl;
}
for (i=0;i<n1;i++) //列印下部分
{
for (j=0;j<n2+2;j++)
{
cout<<" ";
}
n2=n2+1;
for (k=0;k<n3-4;k++)
{
cout<<"*";
}
n3=n3-2;
cout<<endl;
}
return 0;
}
方法很庸俗,莫怪哈