-
没做对的:
【程序5】:输入三个整数x,y,z,请把这三个数由小到大输出。
程序分析:我们想办法把最小的数放到x上,先将x与y进行比较,如果x>y则将x与y的值进行交换,然后再用x与z进行比较,如果x>z则将x与z的值进行交换,这样能使x最小。
main(){
int x,y,z,t;
scanf("%d%d%d",&x,&y,&z);
if (x>y){ /*交换x,y的值*/
t=x;
x=y;
y=t;
}
if(x>z){ /*交换x,z的值*/
t=z;
z=x;
x=t;
}
if(y>z){ /*交换z,y的值*/
t=y;
y=z;
z=t;
}
printf("small to big: %d %d %d\n",x,y,z);
}
-
问题:输出特殊图案
【程序7】输出特殊图案,请在c环境中运行,看一看,very beautiful!
代码:
#include "stdio.h"
main(){
char a=176,b=219;
printf("%c%c%c%c%c\n",b,a,a,a,b);
printf("%c%c%c%c%c\n",a,b,a,b,a);
printf("%c%c%c%c%c\n",a,a,b,a,a);
printf("%c%c%c%c%c\n",a,b,a,b,a);
printf("%c%c%c%c%c\n",b,a,a,a,b);
}
输出结果:
遇到的问题:输出变成文字乱码
主要原因是文件信息的代码页不同,我们所使用的操作系统中文状态下的代码页,要显示扩展的ASCII码需要在437 OEM-美国这个下面显示,这样就可以显示出你所希望的。
解决方案:
1. 具体修改控制台的默认代码页步骤如下:
点击运行界面左上角标题栏图标【c:\】,选择默认值一项
修改默认代码页,936(ANSI/OEM-简体中文GBK)为437 OEM-美国
关闭后重新运行一下即可
(P:没找到在哪,不知道咋改)
2. 临时对扩展ASCII奏效
在#include "stdio.h"前或后加一行#include <stdlib.h>
把char a=176,b=219;改为unsigned char a=176,b=219;。
在第一个printf(...前加一行system("chcp 437>nul.");。
#include <stdio.h>
#include <stdlib.h>
main(){
system("chcp 437>nul.");
int i, j;
unsigned char a = 176, b = 219;
for (i = 0; i < 5; i++){
for (j = 0; j < 5; j++){
if (i == j || (i + j + 1) == 5)
printf("%c", b);
else
printf("%c%c", a, a);
}
printf("\n");
}
}
或者:
在#include "stdio.h"前或后加一行#include <stdlib.h>
在第一个printf(...前加一行system("chcp 437");。
#include <stdio.h>
#include <stdlib.h>
main(){
system("chcp 437");
int i, j;
char a = 176, b = 219;
for (i = 0; i < 5; i++){
for (j = 0; j < 5; j++){
if (i == j || (i + j + 1) == 5)
printf("%c", b);
else
printf("%c%c", a, a);
}
printf("\n");
}
}
3.第三种方法
调用头文件#include <windows.h>
SetConsoleOutputCP(437);
#include <stdio.h>
#include <windows.h>
main(){
int i, j;
SetConsoleOutputCP(437);
char a = 176, b = 219;
for (i = 0; i < 5; i++){
for (j = 0; j < 5; j++){
if (i == j || (i + j + 1) == 5)
printf("%c", b);
else
printf("%c%c", a, a);
}
printf("\n");
}
}
【程序9】输出国际象棋棋盘
代码:
#include<stdio.h>
#include<stdlib.h>
main(){
system("chcp 437>nul.");
int i,j;
for(i=0;i<8;i++){
for(j=0;j<8;j++){
if((i+j)%2==0)
printf("%c%c",219,219);
else
printf(" ");
}printf("\n");
}
}
运行结果:
【程序10】打印楼梯,同时在楼梯上方打印两个笑脸
代码:
#include<stdio.h>
#include<windows.h>
main(){
SetConsoleOutputCP(437);
int i,j;
// printf(" %c%c\n",1,1);
printf("\1\1\n");
for(i=0;i<12;i++){
for(j=0;j<=i;j++){
printf("%c",219);
}
printf("\n");
}
}
运行结果