C语言数字金字塔代码
时间: 2023-11-16 14:02:08 浏览: 211
以下是C语言打印数字金字塔的代码实现,可以根据输入的数字n打印出n层数字金字塔:
```c
#include <stdio.h>
void main() {
int n,i,j,k;
scanf("%d",&n);
for(i=1;i<=n;i++)//n层金字塔
{
for(j=1;j<=n-i;j++)//每层左边空格数
printf(" ");
for(k=1;k<=i;k++)//每层数字个数
printf("%d ",i);//输出每层数字,以及数字之间的空格
printf("\n");
}
}
```
相关问题
c语言数字金字塔代码
下面是一个C语言实现数字金字塔的代码:
```c
#include <stdio.h>
int main() {
int rows, i, j, num = 1;
printf("请输入金字塔的行数:");
scanf("%d", &rows);
for (i = 1; i <= rows; i++) {
for (j = 1; j <= rows - i; j++) {
printf(" "); // 打印空格
}
for (j = 1; j <= i; j++) {
printf("%d ", num); // 打印数字
num++;
}
printf("\n");
}
return 0;
}
```
代码中,我们首先通过`scanf`函数获取用户输入的金字塔行数。然后使用两个嵌套的`for`循环来控制金字塔的行和列。
在外部的循环中,`i`表示当前行数,从1递增到用户输入的行数。在内部的循环中,`j`表示当前列数,从1递增到`rows - i`,用来打印空格,实现对齐。然后,再使用一个内部循环,`j`从1递增到`i`,在每一行中打印数字,并递增`num`的值。
最后,通过`printf("\n")`在每一行结束时打印换行符,确保金字塔的每一行都能独占一行输出。
运行代码后,根据用户输入的行数,会打印出相应行数的数字金字塔。每一行的数字从1开始递增,并左对齐输出,形成了一个金字塔形状。
数字影像金字塔c语言代码
数字影像金字塔是一种图像处理技术,通常用于图像的分层处理和分析。下面是一个简单的数字影像金字塔的C语言代码示例:
```c
#include <stdio.h>
#include <stdlib.h>
#include <math.h>
#define MAX_LEVELS 10
int main()
{
int levels = 3; // 金字塔层数
int width = 512, height = 512; // 原始图像大小
int i, j, k;
// 申请原始图像数组
int **image = (int **)malloc(height * sizeof(int *));
for (i = 0; i < height; i++)
image[i] = (int *)malloc(width * sizeof(int));
// 初始化原始图像
for (i = 0; i < height; i++)
for (j = 0; j < width; j++)
image[i][j] = rand() % 256;
// 申请金字塔数组
int ***pyramid = (int ***)malloc(levels * sizeof(int **));
for (i = 0; i < levels; i++)
{
int w = width / pow(2, i);
int h = height / pow(2, i);
pyramid[i] = (int **)malloc(h * sizeof(int *));
for (j = 0; j < h; j++)
pyramid[i][j] = (int *)malloc(w * sizeof(int));
}
// 生成金字塔
for (k = 0; k < levels; k++)
{
int w = width / pow(2, k);
int h = height / pow(2, k);
for (i = 0; i < h; i++)
for (j = 0; j < w; j++)
pyramid[k][i][j] = image[i * pow(2, k)][j * pow(2, k)];
}
// 输出金字塔
for (k = 0; k < levels; k++)
{
printf("Level %d:\n", k);
int w = width / pow(2, k);
int h = height / pow(2, k);
for (i = 0; i < h; i++)
{
for (j = 0; j < w; j++)
printf("%3d ", pyramid[k][i][j]);
printf("\n");
}
printf("\n");
}
// 释放内存
for (i = 0; i < height; i++)
free(image[i]);
free(image);
for (i = 0; i < levels; i++)
{
int h = height / pow(2, i);
for (j = 0; j < h; j++)
free(pyramid[i][j]);
free(pyramid[i]);
}
free(pyramid);
return 0;
}
```
以上代码可以生成一个3层的数字影像金字塔,可以根据需要修改层数和原始图像大小。