用c ++编写这个Alphabet模式的程序

时间:2014-07-27 08:03:59

标签: c loops nested-loops

有没有其他方法可以用更少的循环来完成这个程序。效率不高

#include <iostream>

using namespace std;

int main() {
    int i,j,n,s;
    cout<<"Enter the value of n";
    cin>>n;
    for(i=1;i<=n;i++){
        for(s=1;s<=n-i;s++){
            cout<<" ";
        }
        char ch=97;
        int k=1;
        for(j=1;j<=(i*2-1);j++) {
            if (k%2!= 0){
                cout <<ch;
                ch++;
            } else {
                cout<<" ";
            }
            k++;
        }
        cout<<endl;
    }
}

输出:

Enter the value of n6
     a
    a b
   a b c
  a b c d
 a b c d e
a b c d e f

2 个答案:

答案 0 :(得分:0)

请尝试以下代码 -

#include<stdio.h>
main()
{
    int i,j,k,num;
    printf("Enter the number of letter \n");
    scanf("%d",&num);
    for(i=0;i<num;i++)
    {
            for(j=num-1;j>i;j--)
                    printf(" ");
            for(k=0;k<=i;k++)
                    printf("%c ",(97+k));
            printf("\n");
    }
}

示例输入和输出 -

sathish@ubuntu:~/c/basics$ ./a.out 
Enter the number of letter 
4
   a 
  a b 
 a b c 
a b c d 

答案 1 :(得分:0)

#include <stdio.h>

int main(){
    char *pat = "a b c d e f g h i j k l m n o p q r s t u v w x y z";
    int i, n;
    printf("input n : ");
    scanf("%d", &n);
    for(i = 1;i<=n;++i)
        printf("%*s%.*s\n", n - i, "", (i << 1) - 1, pat);

    return 0;
}

#include <iostream>
#include <string>

using namespace std;

int main() {
    int n;
    cout << "Enter the value of n : ";
    cin >> n;
    string spaces(n, ' ');
    string pat("a b c d e f g h i j k l m n o p q r s t u v w x y z");
    for(int i=1;i<=n;i++){
        cout << spaces.substr(i);
        cout << pat.substr(0, (i << 1) -1);
        cout << endl;
    }
}