1. 程式人生 > >【C++】 小甲魚視訊筆記(一) 從C到C++過渡的幾個小程式

【C++】 小甲魚視訊筆記(一) 從C到C++過渡的幾個小程式

例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流的內部緩衝區,">>" 操作符隨後從這個 緩衝區提取需要的資訊。