printf-为什么运行结果不正确?

问题描述

为什么运行结果不正确?
int zm=0sz=0qt=0;
char c;
c=getchar();
while(c!='n')
{
if(c>='0 '&& c <='9')
sz++;
else if((c>='A' && c<='Z') || (c>='a' && c<='z'))
zm++;
else
qt++;
c=getchar();
}

printf(""%d %d %dn""szzmqt);
system(""pause"");

解决方案

'0'写错了吧。..........

解决方案二:
另外''也多了一个空格

解决方案三:
if(c>='0 '&& c <='9')
这句,'0 '多了一个空格!删掉之后就好了。

解决方案四:
你想得到什么结果,你问之前,自己调试你的程序了吗

解决方案五:
c=getchar();
getchar每执行一次获取一个字符,所以得放在循环里
while(c!='n')
{
...
c=getchar();
}
也可以放在循环条件上
while((c = getchar()) !='n')
{
...
}

解决方案六:
循环中间的getchar换成
scanf(%c &c);

解决方案七:
int zm=0sz=0qt=0;
char c;
scanf(""%s""&c);
while(c!='n')
{
if(c>='0'&& c <='9')
{
sz++;
} //加上括号为个人习惯
else
if((c>='A' && c<='Z') || (c>='a' && c<='z'))
{
zm++;
}
else
qt++;
getchar();
}
printf(""%d %d %dn""szzmqt);
system(""pause"");

时间: 2024-08-03 18:08:23

printf-为什么运行结果不正确?的相关文章

gcc vc++6.0-同样代码VC6.0结果正确,GCC编译运行结果不正确,原因是什么呢?谢谢!

问题描述 同样代码VC6.0结果正确,GCC编译运行结果不正确,原因是什么呢?谢谢! #include int main() { char deno[1000]={''},num,i=0,remain=0; scanf("%s %d",deno,&num); //获取被除数.除数 if(!num) return (-1); while(deno[i]!='') deno[i++]-='0'; //转换成数字 deno[i]='#'; //结束标志 i=0; while(deno

java-简单多线程运行结果不正确

问题描述 简单多线程运行结果不正确 class TestThread1 extends Thread { public void run() { for(int i=0;i<10;i++) { System.out.println("程序正在运行!"); } } } public class TestThread_1 { public static void main(String[] args) { new TestThread1().start(); for(int i=0;

编程c语言-大家帮帮忙,这个这个程序出黑框了,但是运行结果不正确

问题描述 大家帮帮忙,这个这个程序出黑框了,但是运行结果不正确 大家帮帮忙,这个这个程序出黑框了,但是运行结果不正确,我的程序里男生女生分开了,但是它运行的结果男生女生并没有分开运算! 解决方案 if(a[i].xb=1) 改为:if(a[i].xb==1) if(a[i].xb=2) 改为:if(a[i].xb==2) 解决方案二: 判断用==一个是赋值,必须要十个字--

在cb上面运行得到了正确结果,在vs2015上却有错误,使用了系统禁止的函数调用?

问题描述 在cb上面运行得到了正确结果,在vs2015上却有错误,使用了系统禁止的函数调用? 1C #includeusing namespace std;class Person{private: char* forename; char* surname; int money;public: Person(char *f char *s int m):forename(f)surname(s)money(m) { cout<<""Constructor id calle

int-输入三个字符串,按由小到大的顺序输出。答案运行出来是正确的提交上去是错的。不想用指针,求大神指教

问题描述 输入三个字符串,按由小到大的顺序输出.答案运行出来是正确的提交上去是错的.不想用指针,求大神指教 代码:#include #include int main( ) { char s[3][100]; int i,j,a[3],m; for(i=0;i { gets(s[i]); a[i]=i; } for(j=1;j { for(i=0;i { if(strcmp(s[a[i]],s[a[i+1]])>0) { m=a[i]; a[i]=a[i+1]; a[i+1]=m; } } }

Release编译好的EXE文件直接运行结果不正确

问题描述 Debug直接VS运行,结果没问题Debug编译好的EXE运行,结果没有问题Release直接VS运行,结果没问题Release编译好的EXE运行,问题就出来了经过一番网络查询原因,加上自己将代码从空项目开始,逐行逐句加入全新的项目中,最终锁定三组语句的异常,三组语句都是访问数据库的,经过断点调试,正常运行,无异常.上下文中还有多处和这三组类似的语句,均无异样.只要这三组语句在程序中,都会影响一个计时器的运行,只要这三组注释掉,计时器正常运行!这三组(包括其他类似的地方)访问数据库都是

为什么运行书上的源代码可以正确运行,自己照着编写却什么都出不来

问题描述 我买了一本书,c#实例大全,运行源代码可以正确显示,自己照着编写什么都出不来,一个代码一个的复制过去,也什么都出不来,怎么办. 解决方案 解决方案二:你猜我猜大家猜--解决方案三:缺少引用吧....建议还是先看入门....解决方案四:什么都出不来是什么概念你敲代码进去,连代码也出不来?解决方案五:有些书使用的开发工具版本过低,也许lz用的是最新版的.解决方案六:大家一起猜吧解决方案七:建议先找个人带你入门,然后再看书.解决方案八:肯定是缺少引用了解决方案九:LZ你把你遇到的状况截个图发

c++的问题-C++教材例题,运行结果为啥不正确?

问题描述 C++教材例题,运行结果为啥不正确? 新手自学C++,谭浩强教程例5.8,求3*4矩阵最大值,答案应该是88,我运行的结果却是11,明显是错的,代码也照书检查无误,不知道问题出在哪?求高人指教! #include using namespace std; int main( ) { int max_value(int array[][4]); int a[3][4]={{11,32,45,67},{22,44,66,88},{15,72,43,37}}; cout<<"最大

printf-scanf(&amp;amp;quot;%s&amp;amp;quot;,&amp;amp;amp;a);与scanf(&amp;amp;quot;%s&amp;amp;quot;,a);的区别是什么? 为什么下面的两个都正确?

问题描述 scanf("%s",&a);与scanf("%s",a);的区别是什么? 为什么下面的两个都正确? 第一个 char a[1000]; scanf("%s",&a); printf("%sn",a); system("pause"); 第二个 char a[1000]; scanf("%s",a); printf("%sn",a); sys