装了Dev-c++,复制了一段代码,修改数据后发现运行结果不变,感到很困惑,查资料后解决办法是“运行-清除”,有一段是描述java的话是“eclipse中clean的作用:将工程中的.class文件删除,同时重新编译工程Java文件”。以后要养成习惯:修改数据后,clean一下。
#include 是包含命令,就是把iostream这个文件里的内容复制到这个地方。input output stream,标准输入输出流。它包含: (1)cin>>“要输入的内容” (2)cout<<“要输出的内容” 这两个输入输出的方法需要#include来声明头文件。 (②③来源)
c++标准程序库中的所有标识符都被定义于一个名为std的namespace中。
ps:②没有“;”,而③却有“;”。
下面是自己在理解的基础上手写的代码
#include<iostream> using namespace std; int BinarySearch(int A[],int left,int right,int x) { if(A==NULL) return -1;//这里忘记考虑A==null的情况; while(left<right){ int mid=(left+right)/2; if(x==A[mid]) return mid; else if(x<A[mid]) right=mid-1; else left=mid+1; } } int main() {int A[]={1,3,5,8,9,11,14,16,17,20,22,28};//还不会随机生成数组; int left=0; int right=sizeof(A)/sizeof(A[0])-1;//sizeof不会用!没学过; int p=BinarySearch(A,left,right,28); cout<<p<<endl;//不记得printof怎么用! }sizeof是一个操作符,其作用是返回一个对象或类型所占的内存字节数。 用法:sizeof(数组名)/sizeof(成员或成员变量的类型)可得数组元素的个数。
int sizeof(A)/sizeof(A[0])-1; 第一个A不加[],加[]时,意思是传进去的是数组元素的内容; 不加[ ]时,这时参数相当于是传的一个指针,是数组的首地址。 所以sizeof(A)是数组A的大小,sizeof(A[0])是数组A中第0个元素的大小,属于A中每个元素的大小都是一样,因为每个元素类型一样。所以二者相除就是这个数组的长度,前面那个int就是将这个值的类型由sizeof强制转换为短整型int,以用于后续计算和输出。减一是因为数组是从0开始排序。
这是原始的: 这是第一次修改的: 我把cout<<p<<endl;直接改成printf(“p”);得到的结果是:p 随后查资料修改为: 得到的结果是: 与原来结果一致。
printf("%d ",a); % 后面的d可以替换成下列字符: d 以十进制形式输出带符号整数(正数不输出符号) o 以八进制形式输出无符号整数(不输出前缀0) x,X 以十六进制形式输出无符号整数(不输出前缀Ox) u 以十进制形式输出无符号整数 f 以小数形式输出单、双精度实数 e, E 以指数形式输出单、双精度实数 g, G 以%f或%e中较短的输出宽度输出单、双精度实数 c 输出单个字符 s 输出字符串