第一章 快速入門
一個使用IO庫的程式
#include <iostream>int main(){std::cout<<"Enter two numbers:"<<std::endl;int v1,v2;std::cin>>v1>>v2;std::cout<<"The sum of "<<v1<<" and "<<v2<<" is "<<v1+v2<<std::endl;return 0;}
Std::cout等等的應用是一個亮點,不用在預先處理之後加上using namespace std;d的說明,程式簡單的話很好用。
除了cout,還有ceer,clog等輸出用法;
另外putchar也可以哦,例如“putchar('a\n')”標頭檔依舊是#include<iostream>;
Endl可以重新整理與裝置關聯的緩衝區buffer。經常重新整理buffer是個好習慣!
習題1.3
列印Hello world!
#include <iostream>int main(){std::cout<<"Hello world !"<<std::endl;return 0;}
習題1.4:
求兩數之積
#include <iostream>int main(){std::cout<<"Enter two numbers:"<<std::endl;int v1,v2;std::cin>>v1>>v2;std::cout<<"The product of "<<v1<<" and "<<v2<<" is "<<v1*v2<<std::endl;return 0;}
習題1.5
使用單獨語句列印
#include <iostream>int main(){std::cout<<"Enter two numbers:"<<std::endl;int v1,v2;std::cin>>v1>>v2;std::cout<<"The product of ";std::cout<<v1;std::cout<<" and ";std::cout<<v2;std::cout<<" is ";std::cout<<v1*v2;std::cout<<std::endl;return 0;}
1.3關於注釋
有兩種 單行注釋 // 和多行注釋/**/
注釋不可嵌套!!
注釋是忽略一大段代碼的好方法,在每一行上加一個//而不是在首尾處加上多行注釋(可能有注釋嵌套,造成erro)
#include <iostream>int main(){std::cout<<"/*";std::cout<<"*/";std::cout<</*"*/"*/"; //小心注釋 return 0;}
While語句運用,從1加到n;
#include <iostream>int main(){int sum=0,i,;std::cout<<"Enter a postive number:"<<std::endl;std::cin>>i;int j=i; while(i) {sum+=i;i--;} std::cout<<"sum of "<<1<<" to "<<j<<" is "<<sum<<std::endl ;return 0;}
For語句的運用,將剛才的程式改變一下:
#include <iostream>int main(){int sum=0,i,;std::cout<<"Enter a postive number:"<<std::endl;std::cin>>i;int j=i; for(;i!=0;i--) {sum+=i;} std::cout<<"sum of "<<1<<" to "<<j<<" is "<<sum<<std::endl ;return 0;}
習題1.10
#include <iostream>int main(){int sum=0; for(int val=50;val!=101;val++) {sum+=val;} std::cout<<"sum of "<<50<<" to "<<500<<" is "<<sum<<std::endl ;return 0;}
用while改變
#include <iostream>int main(){int sum=0,val=50; while(val<=100) {sum+=val;val++;}std::cout<<"sum of "<<50<<" to "<<500<<" is "<<sum<<std::endl ;return 0;}
習題1.11
#include <iostream>int main(){int val=10; while(val>=0) {std::cout<<val<<std::endl;val--;}return 0;}
用for迴圈改編
#include <iostream>int main(){int val=10; for(;val>=0;val--) {std::cout<<val<<std::endl;}return 0;}
求某兩個數的和
If語句
#include <iostream>using namespace std;int main(){int v1,v2,lower,upper,sum=0;cout<<"Enter two numbers"<<endl;cin>>v1>>v2;if(v1>v2) {upper=v1;lower=v2;}else {upper=v2;lower=v1;}for(int val=lower;val<=upper;val++) {sum+=val;}cout<<"The sum between "<<lower<<" and "<<upper<<" is "<<sum<<endl;return 0;}
習題1.16
#include <iostream>using namespace std;int main(){cout<<"enter two numbers to find the bigger one:";int v1,max;cin>>v1>>max;if(v1>max) {max=v1;}cout<<"the bigger one is "<<max<<endl;return 0;}
習題1.17
#include <iostream>using namespace std;int main(){cout<<"enter lots of numbers to find how many positive numbers in them:"<<endl<<"press ctrl+z to stop entering"<<endl;int val,count=0;while(cin>>val)if(val>0) count++;cout<<"There are "<<count<<" positive numbers in them."<<endl;return 0;}
讀入未知數目數字求和
#include <iostream>using namespace std;int main(){cout<<"enter lots of numbers to calculate the sum of them:"<<endl<<"press ctrl+z to stop entering"<<endl;int val,sum=0;while(cin>>val)if(val>0){sum+=val;}cout<<"The sum of them is"<<sum<<endl;return 0;}
習題1.18
#include <iostream>using namespace std;int main(){cout<<"enter two numbers :"<<endl;int v1,v2,upper,lower;cin>>v1>>v2;if(v1>v2) {upper=v1;lower=v2;}else {upper=v2;lower=v1;}int val; for(val=lower;val<=upper;val++) cout<<val<<endl;return 0;}
習題1.19
#include <iostream>#include <iomanip>using namespace std;int main(){cout<<"enter two numbers :"<<endl;int v1,v2,upper,lower;cin>>v1>>v2;if(v1>v2) {upper=v1;lower=v2;}else {upper=v2;lower=v1;}int val,amount=0; for(val=lower;val<=upper;val++) { cout<<setw(2)<<val<<" ";amount++;if(amount==10) { cout<<endl; amount=0; } } return 0;}
習題1.20
#include <iostream>using namespace std;int main(){int v1,v2,amount,sum=0;cout<<"Enter two numbers"<<endl;cin>>v1>>v2;amount=v1-v2;if(amount<0) amount=-amount+1;else amount+=1; sum=(v1+v2)*(amount)/2;cout<<"The sum between "<<v1<<" and "<<v2<<" is "<<sum<<endl;return 0;}
類
標準庫的標頭檔用<>;非標準庫的標頭檔用""
如
#include <iostream>#include"Sales_item.h" using namespace std;int main(){ Sales_item item1,item2; cin>>item1>>item2; cout<<item1+item2<<endl; return 0; }
習題1.21
#include <iostream>#include"Sales_item.h" using namespace std;int main(){ Sales_item book; while(cin>>book) { cout<<"ISBN,numbers of copies sold,total revenur,and average price are:" <<endl<<book<<endl; } return 0; }
習題1.22
#include <iostream>#include"Sales_item.h" using namespace std;int main(){ Sales_item item1,item2,item; cout<<"Enter two objects:\n"; cin>>item1>>item2; if(item1.same_isbn(item2)) cout<<"ISBN,numbers of copies sold,total revenur,and average price are:" <<endl<<item1+item2<<endl; else cout<<"The two objects have different ISBN"<<endl; return 0; }
習題1.23
#include <iostream>#include"Sales_item.h" using namespace std;int main(){ Sales_item item,book; cout<<"Enter many objects:\n"; cin>>book; while(cin>>item) if(book.same_isbn(item)) { book+=item; } else { cout<<"The objects have different ISBN"<<endl; return -1; } cout<<"ISBN,numbers of copies sold,total revenur,and average price are:" <<endl<<book<<endl; return 0; }
習題1.24
#include <iostream>#include"Sales_item.h" using namespace std;int main(){ Sales_item item1,item2; int amount=1; cout<<"Enter many objects:\n"; cin>>item1;//讀入第一筆交易,即初始交易。 while(cin>>item2) if(item1.same_isbn(item2)) { ++amount; } //ISBN不同時首先計算之前ISBN的總和,然後再將amount賦值為1 else { cout<<"transaction amount of previous ISBN:" <<endl<<amount<<endl; amount=1; item1=item2; } cout<<"transaction amount of the last ISBN :"<<amount<<endl; return 0; }
習題1.25
#include <iostream>#include"Sales_item.h" using namespace std;int main(){ Sales_item total,trans; cout<<"Enter some objects:\n(press ctrl+z to stop entering)\n"; if(cin>>total) { while(cin>>trans) if(total.same_isbn(trans)) total+=trans; else { cout<<"transaction of previous :"<<total<<endl; total=trans; } } else { cout<<"no input! no data!"<<endl; return -1; } return 0; }