C语言问题: 我用vc执行这段代码时每次键盘敲上一个word空格字没了,到程序输出时后面的都没了,这是为什么?

C语言习题(详细解答)_百度文库
两大类热门资源免费畅读
续费一年阅读会员,立省24元!
C语言习题(详细解答)
上传于||暂无简介
阅读已结束,如果下载本文需要使用0下载券
想免费下载更多文档?
下载文档到电脑,查找使用更方便
还剩28页未读,继续阅读
你可能喜欢为什么用VC++运行输入两位数的C语言程序时出错_百度知道
为什么用VC++运行输入两位数的C语言程序时出错
jpg" target="_blank" title="点击查看大图" class="ikqb_img_alink"><img class="ikqb_img" src="http这是一个比较两个输入数大小的程序://h:///zhidao/wh%3D600%2C800/sign=ef431adbc874b3f7b068097//zhidao/wh%3D450%2C600/sign=a1391359aeaf2eddd4a441edb8202ddf/908fa0ec08fa513df1ad55fbb2fbd964.jpg" esrc="http://h.com/zhidao/pic/item/908fa0ec08fa513df1ad55fbb2fbd964.hiphotos.baidu.hiphotos
c=max(a,int y){
return 0,int y); else z=y;%d; int a,%d&; if(x&gt,b; return (z);}int max(int x,c代码如下#include & printf(&max=%d&#92,c);stdio,b).h&,&a,&b);int main(){ int max( scanf(&y)z=x;n&quot
提问者采纳
因为你输入数据是输错了,你要用逗号隔开,不能用空格。
你输了逗号不要打空格。
哇!!!真的也,呵呵 !谢谢你啊!这跟C++不一样,在C++里可以不打逗号
你用%d,%d都要用逗号隔开的,你用%d%d就可以用空格隔开。
提问者评价
其他类似问题
为您推荐:
c语言程序的相关知识
等待您来回答
下载知道APP
随时随地咨询
出门在外也不愁C语言题目简答题_百度知道
C语言题目简答题
d+=p、将下列嵌套的条件语句用switch语句改写;%5d&quot,fun(a+fun(d))),如果整型数a的个位数字是5;stdio、C语言以上代码使用_______软件编写:1≤m&int d=1。3;
printf(&quot、请用一个条件表达式写出;:如果c的值是大写字母、请写一个C表达式。{ }4;
printf(&n&;}void main( ){
int a=1,则将其转换成对应的小写字母;%5d&#92。#include&lt,否则其值不变。2.h&gt、将下面if-else语句改成一个条件表达式语句;5的浮点类型数据),则表达式的值为非0,且功能等效(其中m是,否则为0,d)、下面程序的输出结果是什么;int fun(int p){
static int d=5;}61
提问者采纳
全局变量(或全程变量)可以为本文件中其它函数所共用、这个题算是所有6个题中最难的了,6和第一个13之间有3个空格,d的值为61。  首先,在下一次该函数调用时,则按实际位数输出)。这时就应该指定该局部变量为“静态局部变量”;2,fun(a+fun(d))。继续,我们看看执行fun(1)是什么效果.0 或 Turbo C++ 3;;%5d&#92,这个表达式中也有fun函数。好:  有时希望函数中的 局部 变量的值在函数调用结束后不消失而保留原值,这个题的答案就有了;输出13,然后static int d=5,就是上一次函数调用结束时的值,必定是在“文件包含”命令下面定义的全局变量d;%5d&quot,我们继续看这时函数应该如何调用,这次再调用fun函数的时候;。最后的“press any key to continue”是Visual C++ 6,然后static int d=5;n&3,fun(a+fun(d))即可用13 来代替,而不论main函数在整个程序中的位置如何(main函数可以放在程序最开头;。然后调用输出函数printf(&quot,但他们不是一个变量;、【题目不全啊】4,按任意键退出,这次的“d=5”是不会被执行的、Visual C++ 6,即d=5+1、【题目不全啊】5,然后printf(&quot,这个d 作为实参。  要解决这道题,然后return d,在第一次调用该函数时d已经被定义、(c&gt,到本源文件结束,或在另一些函数之后);fun函数返回值为13。好。,而是C表达式*/%5d&#92;*符合你的要求,换行、a%10==5
&#47。回到main函数。还是形参p得到了实参值7;由于fun函数里的d是静态变量,所以最终输出结果应该只有一行,也就是说,第一句int a=1;就相当于“d=d+p。由于printf函数中写在%和d之间的整数代表输出字段宽度为5(如果数据的位数小于5,该变量已有值,而且保留上次的值6,d),也可以放在程序最后,d不用再定义了, 并初始化为5。,printf(&quot,这两个d虽然名字相同;输出d的值13,这里,fun函数中定义了一个static类型的变量:
13press any key to continue要注意,不是C语句,也就是6+7,打这么多字累屎了。  分析完执行过程,其参数是d;&#92,即先执行了fun(1),printf函数的输出列表中调用了fun函数,a+fun(d)就是7了,然后printf(&quot,即fun(7),不是C语句,你还应该了解。先执行main函数;n&quot。6.0艾玛,含义如下,而fun函数中的参数是一个表达式a+fun(d);输出了当前局部静态变量d的值6;=65 && c&即函数返回值为6,然后*符合你的要求;n&#39,或在一些函数之前。  上面的问题清楚之后,这次fun函数里的局部静态变量d的值为13,下面就容易了,fun(a+fun(d))),fun函数的printf函数的格式控制字符串中没有换行符&#39.0系统自动生成的;定义了整型变量a并赋初值为1,系统已经为它分配了存储存单元,然后d+=p,即其占用的存储单元不释放:(c=c)
&#47。  这道题还有一个迷惑点是;;定义了一个局部静态变量d,程序运行结束,6前面有4个空格;”。,d+=p,则左补空格:一个C程序总是从main函数开始执行的,即占用的存储单元不一样。然后又调用了一次fun函数,所以;即d=d+p。首先形参p得到了实参的值1,若大于5。,而是C表达式*/这里。  这里要注意。,变量名同样也是d,两个13之间也有3个空格,用关键字static进行声明,其有效范围从定义变量的位置开始,fun(a+fun(d))),该程序还在“文件包含”命令下面定义了一个全局变量,第二个13后面什么都没有直接换行,main函数中fun(d)就可以用数字6代替,两者地址不同,提示程序已经运行完毕;%5d&quot,d);=90)?(c=c+32)
其他类似问题
为您推荐:
c语言的相关知识
其他3条回答
好好学习,天天向上。还是自己做的好
1、if(c&=65&&c&=91) c=c-32;else c=c;
1.#include &stdio.h&void main(){ char a,b; scanf(&%c&,&a); if((a&=97) && (a&=122)) {
printf(&%c&#92;n&,b); } else {
printf(&Please enter the character between a-z&#92;n&); }}2.#include &stdio.h&void main(){ int answer,a; printf(&请输入数据a:&); scanf(&%d&,&a);answer = (a%10)==5?1:0;printf(&结果为:%d&,answer);}5.
等待您来回答
下载知道APP
随时随地咨询
出门在外也不愁在线等啊,本人刚开始学编程,不知道怎么解决,求大神们帮帮忙
没有大神吗??
# include &stdio.h&
# include &stdlib.h&
# include &math.h&
int judgeTriangle(int a, int b, int c);
int main(void)
&&& int a, b,
&&& printf(&请输入三个正整数\n&);
&&& scanf(&%d %d %d&, &a, &b, &c);
&&& judge = judgeTriangle(a, b, c);
&&& switch(judge)
&&& case -1:
&&&&&&&&printf(&它不能构成一个三角形,\n&);
&&& case 0:
&&&&&&&&printf(&它是一个不规则三角形。\n&);
&&& case 1:
&&&&&&&&printf(&它是一个直角三角形。\n&);
&&& case 2:
&&&&&&&&printf(&它是一个等腰三角形。\n&);
&&& case 3:
&&&&&&&&printf(&它是一个等边三角形。\n&);
&&& system(&pause&);
&&& return 0;
int judgeTriangle(int a, int b, int c)
&&& if((fabs(a - b) & c) && (fabs(a + b) & c))
&&&&&&&&if((a*a+b*b == c*c) || (a*a+c*c == b*b) || (b*b+c*c == a*a))
&&&&&&&&&&&&judge = 1;
&&&&&&&&else if(a!=b && b!=c && c!=a)
&&&&&&&&&&&&judge = 0;
&&&&&&&&else if(a == b || b == c || c == a)
&&&&&&&&&&&&if(a == b && b ==c && c == a)
&&&&&&&&&&&&&&& judge = 3;
&&&&&&&&&&&&else
&&&&&&&&&&&&&&& judge = 2;
&&&&&&&&judge = -1;
代码没问题,这只是一个简单的判断三角形类型的程序,其他有汉字的程序都出现这个问题
拷贝你的代码在我的vc6里不能通过编译,提示错误:e:\c++工程\c实验\c实验.cpp(63) : fatal error C1010: unexpected end of file while looking for precompiled header directive
加句:#include &stdafx.h&即可正常编译,运行后汉字显示正常。
回复 6楼 wmf2014
加上你说的那句话后编译出错:E:\Files\C++Files\练习\2015年\\判断三角形的类型.cpp(4) : fatal error C1083: Cannot open include file: 'stdafx.h': No such file or directory
不加那句编译不报错,但是汉字无法显现变成乱七八糟的符号,难道是软件问题??
按f7键编译,忽略头文件预编译错误提示
编码习惯不好
回复 8楼 wmf2014
按F7键编译提示错误:4.exe - 1 error(s), 0 warning(s)
e:\files\c++files\练习\2015年\\4.cpp(4) : fatal error C1083: Cannot open include file: 'stdafx.h': No such file or directory
编译不了,纠结啊,我前几天用着还没问题,中文能正常输出,昨天用着突然就成这样了
回复 9楼 砖家的谎言
这个。。。不规范吗??俺是初学者,哪里需要改正,有什么需要注意的请大神不吝赐教
查一下你“e:\files\c++files\练习\2015年\”目录下有没有StdAfx.h这个文件,如果没有,可在vc6里重新建新工程-选择win32 console application-输入工程名,点确定-选择第二个“一个简单的程序”,点完成。然后在菜单:工程--设置--c/c++ --分类:预编译头文件--选择不使用予补偿页眉。最后拷贝你的代码,应该能编译成功。
不过你说前几天用着没问题,昨天突然出现的,那就不是我说的答案,你仔细想下,这两天是不是装过什么游戏或其他程序,可能是这个引起的。
以下是引用wmf2014在 13:42:35的发言:
查一下你“e:\files\c++files\练习\2015年\”目录下有没有StdAfx.h这个文件,如果没有,可在vc6里重新建新工程-选择win32 console application-输入工程名,点确定-选择第二个“一个简单的程序”,点完成。然后在菜单:工程--设置--c/c++ --分类:预编译头文件--选择不使用予补偿页眉。最后拷贝你的代码,应该能编译成功。
不过你说前几天用着没问题,昨天突然出现的,那就不是我说的答案,你仔细想下,这两天是不是装过什么游戏或其他程序,可能是这个引起的。
我知道原因了,是CMD属性不知道怎么着改了,改了下注册表就OK了,不过还是非常感谢你。改完以后不加#include&stdafx.h&头文件也可以编译正确并正常输出
VC6.0里有挺多BUG,建议换成VS2010

我要回帖

更多关于 空格后面的字没了 的文章

 

随机推荐