!!!!!!!!C菜鸟请高手帮忙!!!!!!!!!

来源:百度知道 编辑:UC知道 时间:2024/06/24 14:56:51
请看以下程序:
#include<stdio.h>
#include<stdlib.h>
void main()
{
① k;
printf("aaaaaaaaaaaa\n");
printf("Y/N\n");
scanf("%②",&k);
if(k==③)
system("cls");
printf("asdhui\n");
}
用键盘输入④

①可用
char 或
int
替代
②可用
c 或
d
替代
③可用
121 或
'y'
替代
④可用
121 或
'y'
替代

根据2×2×2×2共有16种方案可供试验
结果我用vc6.0得出仅有6种是可以达到清屏的效果的
按①②③④的顺序分别是:
i d 121 121
i d 'y' 121
c d 121 121
c d 'y' 121
c c 'y' 'y'
c c 121 'y'
请问这是为什么?难道和整型和字符型的长度不同有关?最好能说详细一点,本人比较菜!

我还是从语句的作用跟你解释下吧
void main()
{
① k; 这里定义一个变量,当然可以是C,D两种情况了,只不过分配的空间大小不同,对于(-256,255)之间的数就没什么区别
printf("aaaaaaaaaaaa\n");
printf("Y/N\n");
scanf("%②",&k);这里是对k变量赋值,此处的c,d只是告诉你后面输入的格式,是以整形还是字符形输入,只要都是表示Y,那都没关系的,人输入时须根据这个c,d来输入就可d--121;c--‘y’
if(k==③) 这里是对k的值进行判断,也可以随意,因为不管整形121,或者字符‘y’那都是一个大小
system("cls");
printf("asdhui\n");
}
用键盘输入④ 此处根据2的格式来输入参数即可

呵呵,我只懂整型中两个字节的,字符型是一个字节的.初学没有必要弄这些乱七八糟的东西吧.

你的问题主要可能是
当k申明位int型时,scanf里面用c接受输入,为什么不清屏
原因是,你的k没有初始化为0,那么k是4个字节的,scanf用c输入的话,只会设置了k的最低字节,而if里面的比较却会比较整个int类型,也就是说如果k的高3个字节默认没有初始化为0的话,那么这个判断就不会相等。
如果你写成
① k;
换成
① k=0;
那么就都可以清屏了