2023-12-02_二维数组等_作业

 

输入描述:

多组输入,一个整数(2~20),表示输出的行数,也表示组成“X”的反斜线和正斜线的长度。

输出描述:

针对每行输入,输出用“*”组成的X形图案。

示例1

输入:

5

复制输出:

*   *
 * * 
  *  
 * * 
*   *
#include <stdio.h>
int main() {
    int n;
    scanf("%d", &n);

    for (int i = 1; i <= n; i++) {
        for (int j = 1; j <= n; j++) {
            if (j == i || j == n - i + 1) {
                printf("*");
            }
            else {
                printf(" ");
            }
        }
        printf("\n");
    }


    return 0;
}

输入描述:

多组输入,一个整数(3~20),表示输出的行数,也表示组成正方形边的“*”的数量。

输出描述:

针对每行输入,输出用“*”组成的“空心”正方形,每个“*”后面有一个空格。

示例1

输入:

4

复制输出:

* * * * 
*     * 
*     * 
* * * * 
#include <stdio.h>
int main() {
	int h, j, k,i,o, n;
	scanf_s("%d", &n);
	for (h = 1; h <= n; h++) {
		printf("* ");
	}
	printf("\n");
	for(i=1;i<=n-2;i++){
		for (j = 1; j <= 2 * n - 1; j++) {
			if (j == 1 || j == 2 * n - 1) {
				printf("*");
			}
			else {
				printf(" ");
			}
		}
		printf("\n");
	}
	for (o = 1; o <= n; o++) {
		printf("* ");
	}
}

输入描述:

第一行包含两个整数n和m,表示一个矩阵包含n行m列,用空格分隔。 (1≤n≤10,1≤m≤10)

从2到n+1行,每行输入m个整数(范围-231~231-1),用空格分隔,共输入n*m个数,表示第一个矩阵中的元素。

输出描述:

输出m行n列,为矩阵转置后的结果。每个数后面有一个空格。

示例1

输入:

2 3
1 2 3
4 5 6

复制输出:

1 4 
2 5 
3 6 
#include <stdio.h>

int main() {
    int n, m;
    scanf("%d %d", &n, &m);  // 输入矩阵的行数和列数

    int matrix[n][m];  // 声明一个二维数组来存储矩阵

    // 输入矩阵的元素
    for (int i = 0; i < n; i++) {
        for (int j = 0; j < m; j++) {
            scanf("%d", &matrix[i][j]);
        }
    }

    // 转置矩阵
    int transposed[m][n];
    for (int i = 0; i < m; i++) {
        for (int j = 0; j < n; j++) {
            transposed[i][j] = matrix[j][i];
        }
    }

    // 输出转置后的矩阵
    for (int i = 0; i < m; i++) {
        for (int j = 0; j < n; j++) {
            printf("%d ", transposed[i][j]);
        }
        printf("\n");
    }

    return 0;
}

 

 

输入描述:

一行,输入10个整数(范围-231~231-1),用空格分隔。

输出描述:

一行,逆序输出输入的10个整数,用空格分隔。

示例1

输入:

1 2 3 4 5 6 7 8 9 10

复制输出:

10 9 8 7 6 5 4 3 2 1
#include <stdio.h>
int main() {
    int i,h,j,arr[10] = { 0 };
    for (i = 0; i < 10; i++) {
        scanf_s("%d", &arr[i]);
    }
    for (h = 0; h < 5; h++) {
        int size;
        size = arr[h];
        arr[h]=arr[9 - h];
        arr[9 - h] = size;
    }
    for (j = 0; j < 10; j++) {
        printf("%d ", arr[j]);
    }
}

 

 

输入描述:

输入包含三行,

第一行包含两个正整数n, m,用空格分隔。n表示第二行第一个升序序列中数字的个数,m表示第三行第二个升序序列中数字的个数。

第二行包含n个整数,用空格分隔。

第三行包含m个整数,用空格分隔。

输出描述:

输出为一行,输出长度为n+m的升序序列,即长度为n的升序序列和长度为m的升序序列中的元素重新进行升序序列排列合并。

示例1

输入:

5 6
1 3 7 9 22
2 8 10 17 33 44

复制输出:

1 2 3 7 8 9 10 17 22 33 44
#include <stdio.h>


int main() {
    int n, m, i, h, k, g, l, arr[100] = { 0 }, arr1[100] = { 0 }, arr2[100] = { 0 };
    scanf_s("%d %d", &n, &m);
    for (i = 0; i < n; i++) {
        scanf_s("%d", &arr[i]);
        arr2[i] = arr[i];
    }
    for (h = 0; h < m; h++) {
        scanf_s("%d", &arr1[h]);
        arr2[n + h] = arr1[h];
    }


    for (k = 0; k < n + m; k++) {
        for (g = 0; g < n+m-1; g++) {
            if (arr2[g] > arr2[g + 1]) {
                int size = arr2[g];
                arr2[g] = arr2[g + 1];
                arr2[g + 1] = size;
            }
        }
    }
    for (l = 0; l < m + n; l++) {
        printf("%d ", arr2[l]);
    }
}

 

作业标题(2787)

【一维数组】输入10个整数,求平均值

作业内容

编写一个程序,从用户输入中读取10个整数并存储在一个数组中。然后,计算并输出这些整数的平均值。

#include <stdio.h>
int main() {
	int i, arr[10] = { 0 };
	for (i = 0; i < 10; i++) {
		scanf_s("%d", &arr[i]);
	}
	float sum = 0;
	for (i = 0; i < 10; i++) {
		sum += arr[i];
	}
	printf("平均数是%f",sum / 10);
}

作业标题(696)

【一维数组】交换数组

作业内容

将数组A中的内容和数组B中的内容进行交换。(数组一样大)

#include <stdio.h>
int main() {
	int i, arr[10] = {1,2,3,4,5,6,7,8,9,0}, arr2[10]= { 0,9,8,7,6,5,4,3,2,1 };
	for (i = 0; i < 10; i++) {
		int temp = arr[i];
		arr[i] = arr2[i];
		arr2[i] = temp;
	}
	for (i = 0; i < 10; i++) {
		printf("%d ", arr[i]);
	}
	printf("\n");
	for (i = 0; i < 10; i++) {
		printf("%d ", arr2[i]);
	}
}

 

 

  • 6
    点赞
  • 9
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值