c语言while循环输出4x5
时间: 2023-10-16 20:06:14 浏览: 59
可以使用如下代码实现:
```c
#include <stdio.h>
int main() {
int i = 1, j = 1;
while (i <= 4) {
while (j <= 5) {
printf("%d ", i * j);
j++;
}
printf("\n");
j = 1;
i++;
}
return 0;
}
```
输出结果为:
```
1 2 3 4 5
2 4 6 8 10
3 6 9 12 15
4 8 12 16 20
```
相关问题
c语言做4x4数字华容道代码
好的,这里提供一份用C语言实现4x4数字华容道的代码,希望能够帮到您。
```
#include <stdio.h>
#include <stdlib.h>
#include <time.h>
#define ROW 4
#define COL 4
void init(int board[ROW][COL])
{
int i, j, k, tmp;
srand(time(NULL));
for (i = 0; i < ROW; i++) {
for (j = 0; j < COL; j++) {
board[i][j] = i * COL + j + 1;
}
}
board[ROW-1][COL-1] = 0; //最后一个位置是空格
for (k = 0; k < 100; k++) { //随机打乱
i = rand() % ROW;
j = rand() % COL;
tmp = board[i][j];
board[i][j] = board[ROW-1][COL-1];
board[ROW-1][COL-1] = tmp;
}
}
void show(int board[ROW][COL])
{
int i, j;
for (i = 0; i < ROW; i++) {
for (j = 0; j < COL; j++) {
if (board[i][j] == 0) {
printf(" ");
} else {
printf("%2d ", board[i][j]);
}
}
printf("\n");
}
}
int check(int board[ROW][COL])
{
int i, j, num = 1;
for (i = 0; i < ROW; i++) {
for (j = 0; j < COL; j++) {
if (board[i][j] != num % (ROW*COL)) {
return 0;
}
num++;
}
}
return 1;
}
int move(int board[ROW][COL], char dir)
{
int i, j, x, y, tmp;
for (i = 0; i < ROW; i++) {
for (j = 0; j < COL; j++) {
if (board[i][j] == 0) {
x = i;
y = j;
}
}
}
switch (dir) {
case 'w': //上移
if (x == 0) {
return 0;
}
tmp = board[x-1][y];
board[x-1][y] = board[x][y];
board[x][y] = tmp;
break;
case 's': //下移
if (x == ROW-1) {
return 0;
}
tmp = board[x+1][y];
board[x+1][y] = board[x][y];
board[x][y] = tmp;
break;
case 'a': //左移
if (y == 0) {
return 0;
}
tmp = board[x][y-1];
board[x][y-1] = board[x][y];
board[x][y] = tmp;
break;
case 'd': //右移
if (y == COL-1) {
return 0;
}
tmp = board[x][y+1];
board[x][y+1] = board[x][y];
board[x][y] = tmp;
break;
default:
return 0;
}
return 1;
}
int main()
{
int board[ROW][COL];
char dir;
init(board);
while (!check(board)) {
show(board);
printf("请输入移动方向(w上 s下 a左 d右):");
scanf("%c", &dir);
if (move(board, dir)) {
system("clear"); //清屏
} else {
printf("移动无效!\n");
}
getchar(); //吃掉缓冲区的回车符
}
show(board);
printf("恭喜您完成华容道!\n");
return 0;
}
```
这份代码主要实现了4x4数字华容道的初始化、打乱、展示、移动以及检查是否完成的功能。其中移动操作使用了简单的交换法,检查是否完成则是对每个位置上的数字进行比较。在主函数中,使用while循环不断展示当前状态并读取用户输入的移动方向,直到完成华容道为止。
c语言查表法程序设计,4X4矩阵键盘(查表法)C语言程序设计
以下是一个简单的4x4矩阵键盘查表法程序设计示例:
```
#include <stdio.h>
// 定义键盘矩阵
char matrix[4][4] = {
{'1', '2', '3', 'A'},
{'4', '5', '6', 'B'},
{'7', '8', '9', 'C'},
{'*', '0', '#', 'D'}
};
// 查找键盘输入对应的字符
char lookup(int row, int col) {
return matrix[row][col];
}
int main() {
int row, col;
char key;
// 循环等待键盘输入
while (1) {
// 读取键盘行列输入
scanf("%d %d", &row, &col);
// 检查输入是否合法
if (row < 0 || row >= 4 || col < 0 || col >= 4) {
printf("Invalid input!\n");
continue;
}
// 查找对应的字符
key = lookup(row, col);
// 输出结果
printf("Key pressed: %c\n", key);
}
return 0;
}
```
此程序中,我们使用一个二维字符数组来表示键盘矩阵,每个元素代表一个键位对应的字符。然后,我们定义一个 `lookup` 函数来查找对应的字符。最后,我们在主函数中循环等待键盘输入,读取行列输入,并检查输入是否合法。如果输入合法,我们调用 `lookup` 函数查找对应的字符,并输出结果。
需要注意的是,此程序只是一个示例,实际应用中可能需要根据具体情况进行修改和优化。