【C++】 小甲魚視訊筆記(一) 從C到C++過渡的幾個小程式
阿新 • • 發佈:2019-01-03
例1:陣列元素的求和
C示例
int main() { int data[]={0,1,2,3,5,6,7,8,9}; int size=sizeof(data)/sizeof(data[0]); printf(“data:%d\n”,sizeof(data)); printf(“the result is: %d\n”,addArray(data,size)); //傳輸的data的地址,所以輸出4 不是40 return 0; } int addArray(int array[],int n) { int sum=0; int i; printf(“array:%d\n”,sizeof(array)); for(i=0;i<n;i++) { sum +=array[i]; } return sum; }
addArray的另一種寫法 :
int addArray(int *array,int n)
{
int sum=0;
int i;
for(i=0;i<n;i++)
{
sum +=*array++;
}
return sum;
}
C++示例:
#include <iosteam> using namespace std; int addArray(int *array,int n); int main() { int data[]={0,1,2,3,4,5,6,7,8,9}; int size=sizeof(data)/sizeof(data[0]); cout<<”結果是:”<<addArray(data,size)<<endl; return 0; } int addArray(int *array,int n) { int sum=0; int i; for(i=0;i<n;i++) { sum+=*array++; } return sum; }
例2:要求使用者輸入遺傳證書和任意數目的空格,這些整數必須位於同一行中,但允許出現在同一行的任何位置。當用戶輸入鍵盤上的“Enter”鍵時,資料輸入結束。程式自動對所有的證書進行求和並打印出結果。
C示例
#include<stdio.h> int main() { int sum=0; int i; char ch; printf("輸入一串整數和任意數目的空格:"); while( scanf("%d",&i)==1) { sum+=i; while((ch=getchar())==' ');//遮蔽空格 if(ch=='\n') break; ungetc(ch,stdin);//將變數ch中存放的字元退回stdin輸入流 } printf("結果是:%d",sum); return 0; }
C++示例
#include<iostream>
using namespace std;
int main()
{
int sum=0;
cout << "輸入一串整數和任意數目的空格:";
int i;
while( cin>>i )//如果到達檔案末尾或遇到非法制則返回false,i為int 遇到小數點亦返回false
{
sum +=i;
while(cin.peek()==' ')//peek的意思是偷窺。在這裡意思是隻是識別到字元,但是並不把字元從流中拿走
{
cin.get();
}
if(cin.peek()=='\n')
break;
}
cout<<"結果是:"<<sum<<endl;
return 0;
}
當用戶進行鍵盤輸入時,對應的字元將輸入到作業系統的鍵盤緩衝區中。
當用戶敲擊enter時,作業系統把鍵盤緩衝區的內容傳輸到cin流的內部緩衝區,">>" 操作符隨後從這個 緩衝區提取需要的資訊。