描述
KiKi学习了循环,BoBo老师给他出了一系列打印图案的练习,该任务是打印用“*”组成的X形图案。
输入描述:
多组输入,一个整数(2~20),表示输出的行数,也表示组成“X”的反斜线和正斜线的长度。
输出描述:
针对每行输入,输出用“*”组成的X形图案。
打印图形:找规律
#include <stdio.h>
int main() {
int a;
while (scanf("%d", &a) != EOF) {
for(int i = 0; i < a; i++)
{
for(int j = 0; j < a; j++)
{
if(i == j || (i + j) == a - 1)
{
printf("*");
}
else {
printf(" ");
}
}
printf("\n");
}
}
return 0;
}
描述
KiKi学习了循环,BoBo老师给他出了一系列打印图案的练习,该任务是打印用“*”组成的“空心”正方形图案。
输入描述:
多组输入,一个整数(3~20),表示输出的行数,也表示组成正方形边的“*”的数量。
输出描述:
针对每行输入,输出用“”组成的“空心”正方形,每个“”后面有一个空格。
#include <stdio.h>
int main() {
int a;
while (scanf("%d", &a) != EOF) { // 注意 while 处理多个 case
// 64 位输出请用 printf("%lld") to
for(int i = 0; i < a; i++)
{
for(int j = 0; j < a; j++)
{
if(i == 0 || i == a - 1)
{
printf("* ");
}
else if(j == 0 || j == a - 1)
{
printf("* ");
}
else
{
printf(" ");
}
}
printf("\n");
}
}
return 0;
}
描述
牛牛有一个矩阵 an,ma__n,m,他想编写一个程序,计算转置后的矩阵 an,m⊤a__n,m⊤。
【名词解释】 【转置矩阵】转置矩阵是将矩阵的行列互换得到的新矩阵。
输入描述:
在一行中输入两个整数 n,mn,m (1≦n,m≦10)(1≦n,m≦10),分别表示矩阵的行数和列数。 接下来 nn 行,每行输入 mm 个整数 ai,1,ai,2,…,ai,ma__i,1,a__i,2,…,a__i,m (−109≦ai,j≦109)(−109≦a__i,j≦109),用空格分隔。
输出描述:
输出 mm 行 nn 列,为矩阵的转置结果。每个元素之后使用一个空格。
#include <stdio.h>
int main() {
int n, m;
scanf("%d%d", &n, &m);
int arr[n][m];
for(int i = 0; i < n; i++)
{
for(int j = 0; j < m; j++)
{
scanf("%d", &arr[i][j]);
}
}
for(int i = 0; i < m; i++)
{
for(int j = 0; j < n; j++)
{
printf("%d ", arr[j][i]);
}
printf("\n");
}
return 0;
}
描述
输入两个升序排列的序列,将两个序列合并为一个有序序列并输出。
数据范围: 1≤n,m≤1000 1≤n,m≤1000 , 序列中的值满足 0≤val≤30000 0≤val≤30000
输入描述:
输入包含三行,
第一行包含两个正整数n, m,用空格分隔。n表示第二行第一个升序序列中数字的个数,m表示第三行第二个升序序列中数字的个数。
第二行包含n个整数,用空格分隔。
第三行包含m个整数,用空格分隔。
输出描述:
输出为一行,输出长度为n+m的升序序列,即长度为n的升序序列和长度为m的升序序列中的元素重新进行升序序列排列合并。
#include <stdio.h>
int main() {
int n, m;
scanf("%d%d", &n, &m);
int arr1[1000] = {0};
int arr2[1000] = {0};
for(int i = 0; i < n; i++)
{
scanf("%d", &arr1[i]);
}
for(int i = 0; i < m; i++)
{
scanf("%d", &arr2[i]);
}
int i = 0;
int j = 0;
while(i < n && j < m)
{
if(arr1[i] < arr2[j])
{
printf("%d ", arr1[i]);
i++;
}
else {
{
printf("%d ", arr2[j]);
j++;
}
}
}
while(i < n)
{
printf("%d ", arr1[i]);
i++;
}
while(j < m)
{
printf("%d ", arr2[j]);
j++;
}
return 0;
}