a存到内存的数值太大了,a=12345678900,b=a+20,得到12345678920,但是用%E格式输出之后,要用标准方式显示(标准方式就是小数点前一位,小数点后六位)那么就成了1.234568E+010 (末尾的8是四舍五入得到的) ,因此别说加20了就是加200也不会体现的 ...
你如果确信你的数据是"ABCD\OEFG\0" D后是\O(字母O,而不是0)则你的程序运行结果是: ABCDOEFGIJK 如果你的数据是:"ABCD\0EFG\0" D后是\0(数字0)则你的程序运行结果是: ABCDIJK strcat时是从第一个地址位置开始,先找到\0位置,然后将第二个指针所指的内容连到其后。
不知道楼主是不是着急打错了,源程序应该如下:include<stdio.h> int main(){ int a[]={1,2,3,4,5,6,7,8,9,0},*p;p=a;printf("%d\n",*(p+9));} 这是一个指针指向数组,形成指针与数组元素相对应的问题。其中,定义了数组a[]和int型指针p,且使指针指向了数组a[],其实是将...
include <stdio.h> void main(){ int a ,b,c;scanf("%d%d\n",&a,&b);c=a+b;printf("a+b=%d\n",c); //在这里加个%d就有输出了。}
错误有三,一是if体少一个大括号导致else配对失败,二是笔误(转义字符\n),三是误认为数学表达式在C语言里仍能识别。(通常main返回0)改完代码如下(可正常运行,if里的判断有重叠,我稍微改了下,如果不符合你的要求可以重改):include<stdio.h>int main(){ int a; printf("\nPlease...
输出49 (p+=3)[3] //先把a[3]的地址赋予p,然后取p这个地址偏移3个单位的地址内的值,那就是a[6]了,a[6]就是49
include"stdio.h"include"string.h"void main(){ char ss[10]="1,2,3,4,5";/*得到一串字符赋给ss*/ gets(ss);/*将6789链接到ss字符串的后面*/ strcat(ss,"6789");/*输出ss*/ printf("%s\n",ss);/*所以你输入ABC输出时SS即为ABC6789*/ system("pause");} ...
include <stdio.h> int main(){ int a, b, c;scanf("%d%d", &a, &b);c = a - b;if(c > 0){ a = b;b += c; //错在这里,if(c>0) { ... } } printf("%d %d", a, b);return 0;}
首先感觉这个程序写的很乱,而且我没看出来这个程序到底要做什么具体的、有意义的事情。然后仔细看了下,char a[]="morning",t;int i,j=0;for(i=1;i<7;i++)if(a[j]
这个很简单:首先我们看到a='1',b='2',都为字符类型,查表可知其ASICC值,再看第一条打印语句,要打印为字符类型,因此打印为2,++运算为后置,表示先使用b,再把其加一,可知b='3';由此很容易理解b-a的值!即为2!