感觉好绕人阿,其实我不想用负值字符的,但是根据自己的思路,输入AB这些时候,凌乱了,char一个k字符,让其小于等于行数i,行数i是数字,思路乱掉,所以干脆让所有数字换成字符#include <stdio.h> int main() { char c; scanf("%c",&c);//c为输入的大写字母 for(int i=‘A‘;i<=c;i++)//i<=c就等于数字i<行数n { for (int j=1; j<=c-i;j++ )//n-i就等于每行空格数 { printf(" "); } for ( int k=‘A‘;k<=i;k++ )//k<=i,相当于每行输出顺字母数等于行数n { printf("%c",k); } for (int j = 0; j<(i-‘A‘); j++) {//就是J小于每行最大的数字,第一行不符合,直接跳出, printf("%c", i - j - 1); } printf("\n"); } return 0; }
int main() { int n=0; char c; scanf("%c",&c); n=c-‘A‘+1; for(int i=1;i<=n;i++) { for(int j=n-i;j>=1;j--) { printf(" "); } for(int k=n;k>n-i;k--) { printf("%c",c-k+1); } for(int k=n-i+1;k<n;k++) { printf("%c",c-k); } printf("\n"); } return 0; }
时间: 2024-11-19 11:54:55