c 语言 输出九九乘法表
时间: 2023-05-25 13:05:25 浏览: 55
下面是一个用 C 语言编写的九九乘法表程序:
```c
#include <stdio.h>
int main() {
int i, j, result;
// 输出九九乘法表
for (i = 1; i <= 9; i++) {
for (j = 1; j <= i; j++) {
result = i * j;
printf("%d*%d=%2d ", j, i, result);
}
printf("\n");
}
return 0;
}
```
输出结果为:
```
1*1= 1
1*2= 2 2*2= 4
1*3= 3 2*3= 6 3*3= 9
1*4= 4 2*4= 8 3*4=12 4*4=16
1*5= 5 2*5=10 3*5=15 4*5=20 5*5=25
1*6= 6 2*6=12 3*6=18 4*6=24 5*6=30 6*6=36
1*7= 7 2*7=14 3*7=21 4*7=28 5*7=35 6*7=42 7*7=49
1*8= 8 2*8=16 3*8=24 4*8=32 5*8=40 6*8=48 7*8=56 8*8=64
1*9= 9 2*9=18 3*9=27 4*9=36 5*9=45 6*9=54 7*9=63 8*9=72 9*9=81
```
相关问题
用汇编语言输出九九乘法表
以下是用 x86 汇编语言输出九九乘法表的示例代码:
```
section .data
nl db 0Ah ; 换行符
section .text
global main
main:
; 设置循环计数器
mov ecx, 9
outer_loop:
; 在每行开始处输出行号,并设置内部循环计数器
mov eax, ecx
mov ebx, 1
inner_loop:
; 计算乘积
mov edx, 0
mul ebx
; 输出乘积
push edx
call print_num
add esp, 4
; 输出分隔符和空格
mov dl, ','
push edx
call print_char
add esp, 4
mov dl, ' '
push edx
call print_char
add esp, 4
; 更新内部循环计数器
inc ebx
cmp ebx, ecx
jle inner_loop
; 输出换行符
mov dl, nl
push edx
call print_char
add esp, 4
; 更新外部循环计数器
dec ecx
jge outer_loop
; 退出程序
mov eax, 1
xor ebx, ebx
int 80h
; 输出一个字符
print_char:
push ebp
mov ebp, esp
mov eax, 4
mov ebx, 1
mov dl, [ebp+8]
int 80h
pop ebp
ret
; 输出一个数字
print_num:
push ebp
mov ebp, esp
mov eax, [ebp+8]
cmp eax, 10
jl one_digit
mov ebx, 10
div ebx
call print_num
mov eax, edx
one_digit:
add eax, '0'
push eax
call print_char
add esp, 4
pop ebp
ret
```
这段代码使用了 x86 汇编语言,在 Linux 系统下编译运行。它通过两层循环输出九九乘法表,内部循环计算并输出乘积,外部循环控制行数。其中,`print_char` 和 `print_num` 函数用于输出字符和数字。
汇编语言输出九九乘法表
以下是一个示例程序,可以输出九九乘法表:
```assembly
.model small
.stack 100h
.data
newline db 10, 13, '$'
table db 81 dup('$')
.code
mov ax, @data
mov ds, ax
mov cx, 9 ; 设置行数
mov di, 0 ; 设置表格索引
; 计算乘法表
mov bx, 1
table_loop:
mov ax, 1
inner_loop:
mov dl, '0' ; 设置数码字符为 '0'
add dl, bx ; 添加行数到数码字符
mul dl ; 乘以列数
add al, 30h ; 转换结果为 ASCII 码
mov table[di], al ; 存储结果
inc di
cmp di, 81
jz print_table
inc bx
cmp bx, 10
jnz inner_loop
dec cx
cmp cx, 0
jnz table_loop
print_table:
; 打印乘法表
mov cx, 9
row_loop:
mov di, 0
mov bx, 1
column_loop:
mov ah, 02h
mov dl, '0' ; 打印行数
add dl, cx
int 21h
mov ah, 02h
mov dl, 'x'
int 21h
mov ah, 02h
mov dl, '0' ; 打印列数
add dl, bx
int 21h
mov ah, 02h
mov dl, '='
int 21h
mov ah, 02h
mov dl, table[bx+(9-cx-1)*9-1] ; 打印计算结果
int 21h
mov ah, 09h
lea dx, newline
int 21h
inc bx
cmp bx, 10
jnz column_loop
dec cx
cmp cx, 0
jnz row_loop
mov ah, 4ch
int 21h
end
```
该程序使用一个名为“table”的字节数组来存储乘法表。该数组有81个元素,每个元素可以存储一个数字或一个字符(“$”)。程序使用双重循环计算乘法表,并在打印乘法表时从数组中检索计算结果。程序在每个结果后添加一个换行符。
相关推荐
![docx](https://img-home.csdnimg.cn/images/20210720083331.png)
![zip](https://img-home.csdnimg.cn/images/20210720083736.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![doc](https://img-home.csdnimg.cn/images/20210720083327.png)
![mp4](https://img-home.csdnimg.cn/images/20210720083504.png)
![docx](https://img-home.csdnimg.cn/images/20210720083331.png)