int main(void) { char ch; int row, r; scanf("%c", &ch); row = ch - 'A' + 1; for (r = 1; r <= row; r++) { //空格的循环 int space; for (space = row - r + 1; space >= 1; space--) { printf(" "); } //正序字母的循环 int n1; char ch1; for (ch1 = 'A', n1 = 1; n1 < r; n1++, ch1++) { printf("%c", ch1); } //倒序字母的循环 int n2; char ch2; for (ch2 = 'A' + r - 1, n2 = row; n2 >= 1 && ch2 >= 'A'; n2--, ch2--) { printf("%c", ch2); } printf("\n"); } system("pause"); return 0; }
时间: 2024-01-23 15:04:25 浏览: 78
这是一个输出字母三角形的C程序,输出结果类似于:
```
A
ABA
ABCBA
ABCDCBA
ABCDEDCBA
```
程序的大致思路如下:
1. 读入一个大写字母,计算出字母所在行数,存储在变量row中。
2. 使用for循环遍历每一行,包括空格、正序字母和倒序字母的输出。
3. 空格的数量与行数相关,通过计算row-r+1来得到。
4. 正序字母的数量与行数相关,使用for循环和计数器输出。
5. 倒序字母的数量与行数相关,使用for循环和计数器输出。
6. 每输出完一行,换行后继续输出下一行,直到输出完所有行。
最后使用system("pause")暂停程序,输出结果。
相关问题
将下列代码中数组初始化改为用户scanf输入#include <stdio.h> #define ROW 3 #define COL 3 void sztj(); void waty(); void nqst(); void nujs(); void okoj(); void zzpj(); void jijj(); int main() { char ch; abc: printf("******数组应用系统*******\n"); printf("1.定义数组并输入\n
请输入一个3*3的整数数组:\n");
int arr[ROW][COL];
for(int i=0;i<ROW;i++){
for(int j=0;j<COL;j++){
scanf("%d",&arr[i][j]);
}
}
printf("2.数组输出\n");
for(int i=0;i<ROW;i++){
for(int j=0;j<COL;j++){
printf("%d ",arr[i][j]);
}
printf("\n");
}
printf("\n");
printf("3.数组的转置\n");
sztj(arr);
printf("4.数组的位移\n");
waty(arr);
printf("5.数组的逆序\n");
nqst(arr);
printf("6.数组的倒置\n");
nujs(arr);
printf("7.数组的扎扎平\n");
zzpj(arr);
printf("8.数组的基偶交换\n");
jijj(arr);
printf("是否继续执行程序(Y/N)?");
scanf(" %c",&ch);
if(ch=='Y'||ch=='y'){
goto abc;
}
else{
printf("程序结束!");
}
return 0;
}
void sztj(int arr[][COL]){
int new_arr[COL][ROW];
for(int i=0;i<ROW;i++){
for(int j=0;j<COL;j++){
new_arr[j][i]=arr[i][j];
}
}
for(int i=0;i<COL;i++){
for(int j=0;j<ROW;j++){
printf("%d ",new_arr[i][j]);
}
printf("\n");
}
printf("\n");
}
void waty(int arr[][COL]){
int n;
printf("请输入位移的列数:\n");
scanf("%d",&n);
int new_arr[ROW][COL];
for(int i=0;i<ROW;i++){
for(int j=0;j<COL;j++){
new_arr[i][(j+n)%COL]=arr[i][j];
}
}
for(int i=0;i<ROW;i++){
for(int j=0;j<COL;j++){
printf("%d ",new_arr[i][j]);
}
printf("\n");
}
printf("\n");
}
void nqst(int arr[][COL]){
int new_arr[ROW][COL];
for(int i=0;i<ROW;i++){
for(int j=0;j<COL;j++){
new_arr[ROW-1-i][COL-1-j]=arr[i][j];
}
}
for(int i=0;i<ROW;i++){
for(int j=0;j<COL;j++){
printf("%d ",new_arr[i][j]);
}
printf("\n");
}
printf("\n");
}
void nujs(int arr[][COL]){
int new_arr[ROW][COL];
for(int i=0;i<ROW;i++){
for(int j=0;j<COL;j++){
new_arr[ROW-1-i][j]=arr[i][j];
}
}
for(int i=0;i<ROW;i++){
for(int j=0;j<COL;j++){
printf("%d ",new_arr[i][j]);
}
printf("\n");
}
printf("\n");
}
void zzpj(int arr[][COL]){
int new_arr[ROW*COL];
int k=0;
for(int i=0;i<ROW;i++){
for(int j=0;j<COL;j++){
new_arr[k++]=arr[i][j];
}
}
for(int i=0;i<ROW*COL;i++){
printf("%d ",new_arr[i]);
}
printf("\n\n");
}
void jijj(int arr[][COL]){
int new_arr[ROW][COL];
for(int i=0;i<ROW;i++){
for(int j=0;j<COL;j++){
new_arr[i][j]=arr[i][j];
}
}
for(int i=0;i<ROW;i++){
for(int j=0;j<COL;j++){
if(new_arr[i][j]%2==0){
new_arr[i][j]=new_arr[i][j]/2;
}
else{
new_arr[i][j]=new_arr[i][j]*2;
}
}
}
for(int i=0;i<ROW;i++){
for(int j=0;j<COL;j++){
printf("%d ",new_arr[i][j]);
}
printf("\n");
}
printf("\n");
}
用c语言编程 输出指定行列数的字符 编写一个函数,函数原型:void Chline(char ch, int column, int row); 该函数的3个参数是一个字符和两个整数。字符参数是需要输出的字符。第一个整数说明了在每行中该字符输出的个数,而第二个整数指的是需要输出的行数。编写一个调用该函数的程序。 程序运行结果示例1: input a char: k↙ input column and row: 2 3↙ kk kk kk 程序运行结果示例2: input a char: a↙ input column and row: 3 2↙ aaa aaa 输入格式: "%c" "%d%d" 输出格式: 字符输入提示信息:"input a char:\n" 行列数输入提示信息:"input column and row:\n" 输出格式:"%c"
以下是实现题目要求的C语言代码:
```c
#include <stdio.h>
void Chline(char ch, int column, int row);
int main()
{
char ch;
int column, row;
printf("input a char:\n");
scanf("%c", &ch);
printf("input column and row:\n");
scanf("%d%d", &column, &row);
Chline(ch, column, row);
return 0;
}
void Chline(char ch, int column, int row)
{
for (int i = 0; i < row; i++)
{
for (int j = 0; j < column; j++)
{
printf("%c", ch);
}
printf("\n");
}
}
```
代码思路:
1. 在主函数中先读入一个字符和两个整数;
2. 调用函数Chline,将读入的字符和整数传入函数;
3. 在函数Chline中使用两个循环分别控制行和列的输出次数;
4. 在列循环中输出指定字符;
5. 在行循环中输出换行符,以控制输出格式。
注意事项:
1. 在输出指定字符时,使用printf函数并不需要加上'\n',因为我们只需要输出字符本身;
2. 在输出换行符时,使用printf函数需要加上'\n',以控制行数和列数。
阅读全文