C语言如何使输出不同数字有其相应的颜色
时间: 2024-06-09 14:11:52 浏览: 51
在C语言中,可以使用ANSI转义序列来为输出文本设置颜色。下面的代码演示了如何在控制台中使用ANSI转义序列为不同数字设置不同的颜色:
```c
#include <stdio.h>
int main() {
int num1 = 123;
int num2 = 456;
printf("\033[1;31m%d\033[0m\n", num1); // 红色输出num1
printf("\033[1;32m%d\033[0m\n", num2); // 绿色输出num2
return 0;
}
```
在上面的代码中,`\033[1;31m`和`\033[1;32m`是ANSI转义序列,表示设置输出文本的颜色。其中,`1`表示粗体,`31`表示红色,`32`表示绿色,`m`表示设置结束。`\033[0m`表示重置颜色,即恢复默认颜色。
另外,需要注意的是,ANSI转义序列在不同的操作系统和终端中可能会有不同的表现,所以在实际应用中需要进行测试和适配。
相关问题
C语言输入整数 n(n 在 1-20 之间),输入 3 至 20 的正整数,输出相应大小的魔方阵,要求魔方阵输出时的样式是放在一个表格中,有彩色最好。输出蛇形矩阵。要求中间最小,然后往往慢慢变大。如输入3,则输出 7 8 9 6 1 2 5 4 3 C语言 要求有:一个数字一个数字出现的动画效果
以下是一个满足要求的 C 语言程序:
```c
#include<stdio.h>
#include<windows.h>
void Color(int color) {
SetConsoleTextAttribute(GetStdHandle(STD_OUTPUT_HANDLE), color);
}
void delay(int milliseconds) {
Sleep(milliseconds);
}
void print_magic_square(int n) {
if (n % 2 == 0) {
printf("n must be odd.\n");
return;
}
int magic_square[20][20] = {0};
int row = 0;
int col = n / 2;
magic_square[row][col] = 1;
for (int i = 2; i <= n * n; i++) {
int new_row = row - 1;
int new_col = col + 1;
if (new_row < 0) {
new_row = n - 1;
}
if (new_col == n) {
new_col = 0;
}
if (magic_square[new_row][new_col] != 0) {
new_row = row + 1;
new_col = col;
}
magic_square[new_row][new_col] = i;
row = new_row;
col = new_col;
}
printf("\n");
printf("The magic square of size %d:\n\n", n);
for (int i = 0; i < n; i++) {
for (int j = 0; j < n; j++) {
if (magic_square[i][j] >= 10) {
Color(12);
} else {
Color(15);
}
printf("%2d ", magic_square[i][j]);
delay(100);
}
printf("\n");
}
Color(15);
}
void print_snake_matrix(int n) {
int snake_matrix[20][20] = {0};
int i = n / 2;
int j = n / 2;
int num = 1;
int direction = 0;
int length = 1;
while (num <= n * n) {
snake_matrix[i][j] = num;
num++;
if (direction == 0) {
if (num > n * n) break;
for (int k = 1; k <= length; k++) {
j++;
snake_matrix[i][j] = num;
num++;
delay(100);
}
direction = 1;
} else if (direction == 1) {
for (int k = 1; k <= length; k++) {
i--;
snake_matrix[i][j] = num;
num++;
delay(100);
}
length++;
direction = 2;
} else if (direction == 2) {
for (int k = 1; k <= length; k++) {
j--;
snake_matrix[i][j] = num;
num++;
delay(100);
}
direction = 3;
} else if (direction == 3) {
length++;
for (int k = 1; k <= length; k++) {
i++;
snake_matrix[i][j] = num;
num++;
delay(100);
}
direction = 0;
}
}
printf("\n");
printf("The snake matrix of size %d:\n\n", n);
for (int i = 0; i < n; i++) {
for (int j = 0; j < n; j++) {
if (snake_matrix[i][j] >= 10) {
Color(12);
} else {
Color(15);
}
printf("%2d ", snake_matrix[i][j]);
delay(100);
}
printf("\n");
}
Color(15);
}
int main() {
int n;
printf("Please enter an integer n (1-20): ");
scanf("%d", &n);
if (n < 3 || n > 20) {
printf("n must be between 3 and 20.\n");
return 0;
}
printf("\n");
print_magic_square(n);
printf("\n");
print_snake_matrix(n);
return 0;
}
```
该程序使用了 Windows.h 中的函数来设置控制台文字的颜色以及延时,因此只能在 Windows 系统上运行。
程序中包含两个函数,一个是输出魔方阵的函数 `print_magic_square`,另一个是输出蛇形矩阵的函数 `print_snake_matrix`。这两个函数都接受一个整数参数 n,表示矩阵的大小。
在 `print_magic_square` 函数中,首先判断 n 是否为奇数,如果不是奇数,则输出错误信息并返回。然后使用一个二维数组来存储魔方阵,使用类似于蛇形矩阵的方法来逐个填充数字。填充完毕后,按照表格的形式输出魔方阵,数字较大的使用红色字体,数字较小的使用白色字体,并且在输出每个数字之前都延时了一段时间,以达到一个数字一个数字出现的动画效果。
在 `print_snake_matrix` 函数中,同样使用一个二维数组来存储蛇形矩阵,使用类似于魔方阵的方法来逐个填充数字。填充完毕后,同样按照表格的形式输出蛇形矩阵,数字较大的使用红色字体,数字较小的使用白色字体,并且在输出每个数字之前都延时了一段时间,以达到一个数字一个数字出现的动画效果。
最后在主函数中,首先输入要生成的矩阵的大小 n,然后调用上述两个函数来输出魔方阵和蛇形矩阵。
把赤、橙、黄、绿、青、蓝、紫分别对应成1、2、3、4、5、6、7。每次输入两个数字,请你编程输出相应的颜色C语言
以下是将数字与颜色对应的C语言代码:
```c
#include <stdio.h>
int main() {
int color1, color2;
printf("请输入两个数字(1-7):");
scanf("%d %d", &color1, &color2);
switch(color1) {
case 1:
printf("赤对应的颜色是红\n");
break;
case 2:
printf("橙对应的颜色是橙\n");
break;
case 3:
printf("黄对应的颜色是黄\n");
break;
case 4:
printf("绿对应的颜色是绿\n");
break;
case 5:
printf("青对应的颜色是青\n");
break;
case 6:
printf("蓝对应的颜色是蓝\n");
break;
case 7:
printf("紫对应的颜色是紫\n");
break;
default:
printf("输入的数字无效\n");
break;
}
switch(color2) {
case 1:
printf("赤对应的颜色是红\n");
break;
case 2:
printf("橙对应的颜色是橙\n");
break;
case 3:
printf("黄对应的颜色是黄\n");
break;
case 4:
printf("绿对应的颜色是绿\n");
break;
case 5:
printf("青对应的颜色是青\n");
break;
case 6:
printf("蓝对应的颜色是蓝\n");
break;
case 7:
printf("紫对应的颜色是紫\n");
break;
default:
printf("输入的数字无效\n");
break;
}
return 0;
}
```
阅读全文