C语言一个百思不得其解的问题,哪位能帮助解答,谢谢了!

来源:百度知道 编辑:UC知道 时间:2024/05/30 03:02:53
main()
{
char a;
do
{ scanf("%c",&a);
switch(a)
{
case '1': printf("qing shu ru\n");break;
case '0': printf("xie xie shi yong\n");break;
default:printf("shu ru chuo wu,qing chong xin shu ru\n");}
}
while(a!='0');
为何把%C换成%S就好了,会的多说两句。
如果用int a,输入数字是正确的,输入字符是死循环。用char a,后面总跟着shu ru chuo wu,qing chong xin shu ru,这个程序出错的原因是什么?。用char a,能不能写出这个程序。(用的是TC2。0)衷心的感谢大家的回答。

#include <stdio.h>
main()
{
int a;
do
{ scanf("%d",&a); /*你输入字符'0'的ASIIC值:48*/
switch(a) /*在这里a与下面的ASSIC进行比较发现与字符'0'相等输出*/
{
case '1': printf("qing shu ru\n");break;
case '0': printf("xie xie shi yong\n");break;
default:printf("shu ru chuo wu,qing chong xin shu ru\n");}
}
while(a!='0'); /*我们输入的是48条件不满足程序结束*/
}
====================================================
如果用int a,输入数字是正确的,输入字符是死循环
int占 16个字节或者32(各个编译器不同)char占1个字节
这个时候你输入字符的时候编译器就会出错形成死循环
为何把%C换成%S就好了
%c 当你输入0的时候程序通过
%s 你输入一个字符串 你给变量a输入的.他只能存一个
当你输入0 或者0etree(后面任意数将结束)
====================
#include <stdio.h>
main()
{
char a;
do
{ scanf("%c",&a);
switch(a)
{
case '1': printf("qing shu ru\n");break;
case '0': pri