c语言while打印长方形
时间: 2024-10-23 11:17:31 浏览: 19
在C语言中,可以使用`while`循环来打印长方形。下面是一个简单的例子,打印一个宽度n为5的空格和星号交替组成的长方形:
```c
#include <stdio.h>
int main() {
int n = 5; // 长方形的宽度
int i, j;
// 打印上半部分的星号
for (i = 0; i < n; ++i) {
for (j = 0; j <= i; ++j)
printf("* ");
printf("\n");
}
// 打印下半部分的空格
for (i = n - 2; i >= 0; --i) { // 减去2是为了留出上下对齐的边框
for (j = 0; j <= i; ++j)
printf(" "); // 空格代替星号
printf("\n");
}
return 0;
}
```
这个程序会输出:
```
*
* *
* * *
* * * *
* * * * *
*
*
*
```
如果你想自定义宽度或者打印其他形状,只需要调整变量`n`和内部循环条件即可。
相关问题
c语言while长方形
在C语言中,如果你想通过while循环来计算和打印长方形,可以使用变量来控制行数和列数,例如宽度(w)和高度(h)。以下是一个简单的示例:
```c
#include <stdio.h>
int main() {
int w, h; // 宽度和高度的变量
printf("请输入长方形的宽度:");
scanf("%d", &w);
printf("请输入长方形的高度:");
scanf("%d", &h);
int row = 0; // 行数计数器
while (row < h) { // 当行数小于高度时继续循环
for (int col = 0; col < w; col++) { // 每一行有宽度个 *
printf("*"); // 打印星号
}
printf("\n"); // 换行到下一行
row++; // 行数加一
}
printf("完成。\n"); // 结束后提示完成
return 0;
}
```
在这个程序中,用户会被询问输入长方形的宽度和高度,然后while循环会按行打印指定数量的星号字符来形成长方形。每个内部for循环代表一行,当所有行都打印完成后,跳出while循环。
现在有很多长方形,每一个长方形都有一个名字,还知道每个长方形的长和宽,长、宽都是整数;现在要求按照长方形名字排序(默认排序规则是字典序升序A-Z); 输入 第一行有一个整数 0<m<20,表示有m个长方形; 接下来的m行,每一行有三个值 ,第一个是字符串表示长方形的名字(长度不超过20),第二个和第三个是整数表示长和宽;c语言
好的,下面是对应的C语言代码实现:
```c
#include <stdio.h>
#include <string.h>
typedef struct {
char name[21];
int length;
int width;
} Rectangle;
void swap(Rectangle *a, Rectangle *b) {
Rectangle temp = *a;
*a = *b;
*b = temp;
}
int partition(Rectangle rectangles[], int left, int right) {
Rectangle pivot = rectangles[left];
int i = left + 1;
int j = right;
while (1) {
while (strcmp(rectangles[i].name, pivot.name) < 0 && i < right) {
i++;
}
while (strcmp(rectangles[j].name, pivot.name) > 0 && j > left) {
j--;
}
if (i >= j) {
break;
}
swap(&rectangles[i], &rectangles[j]);
i++;
j--;
}
swap(&rectangles[left], &rectangles[j]);
return j;
}
void quick_sort(Rectangle rectangles[], int left, int right) {
if (left >= right) {
return;
}
int pivot_index = partition(rectangles, left, right);
quick_sort(rectangles, left, pivot_index - 1);
quick_sort(rectangles, pivot_index + 1, right);
}
int main() {
int m;
scanf("%d", &m);
Rectangle rectangles[m];
for (int i = 0; i < m; i++) {
scanf("%s %d %d", rectangles[i].name, &rectangles[i].length, &rectangles[i].width);
}
quick_sort(rectangles, 0, m - 1);
for (int i = 0; i < m; i++) {
printf("%s %d %d\n", rectangles[i].name, rectangles[i].length, rectangles[i].width);
}
return 0;
}
```
上面的代码中,我们使用了快速排序算法来实现按长方形名字排序,比较字符串大小时使用了 `strcmp` 函数,`swap` 函数用于交换两个长方形的位置。在主函数中,我们先读入长方形信息,然后对长方形数组进行快速排序,最后按照长方形名字输出排序后的结果。
阅读全文