c++ 用for循环打印空心菱

c++ 用for循环打印空心菱打印9行,要求简单明了,不要太复杂

第1个回答  2017-09-18

按照你的要求编写的用for循环打印空心菱的C++程序如下(abs函数是cmath库中的求绝对值的函数)

#include <iostream>
#include <cmath>
using namespace std;
int main()
{
 int i,j,N=9;
 for(i=1;i<=2*N-1;i++){
  for(j=1;j<=abs(N-i);j++){
   cout << " ";
  }
  for(j=1;j<=2*N-abs(i-N)*2-1;j++){
   if(j==1 || j==2*N-abs(i-N)*2-1){
    cout << "*";
   }else{
    cout << " "; 
   }
  }
  cout << endl;
 }
 return 0;
}

追问

我还没学函数😓

追答

没有函数的用for循环打印空心菱的C++程序如下

#include <iostream>
using namespace std;
int main()
{
 int i,j,N=9;
 for(i=1;i<=N;i++){
  for(j=1;j<=N-i;j++){
   cout << " ";
  }
  for(j=1;j<=i*2-1;j++){
   if(j==1 || j==i*2-1){
    cout << "*";
   }else{
    cout << " "; 
   }
  }
  cout << endl;
 }
 for(i=N+1;i<=2*N-1;i++){
  for(j=1;j<=i-N;j++){
   cout << " ";
  }
  for(j=1;j<=4*N-i*2-1;j++){
   if(j==1 || j==4*N-i*2-1){
    cout << "*";
   }else{
    cout << " "; 
   }
  }
  cout << endl;
 }
 return 0;
}

第2个回答  2017-09-18
#includeusingnamespacestd;intmain(intargc,char**argv){intwidth;cin>>width;if(width%2==0){width+=1;}for(inti=0;i!=width;i++){for(intj=0;j!=width;j++){if(j==(width/2-i)||j==(width/2+i)||j==(i-width/2)||j==(width/2*3-i)){cout<<"*";}else{cout<<"";}}cout<追问

不要给值,就打印9行

相似回答