C 程式設計實踐指導 第一章 簡單程式設計 (1)

2021-09-10 13:25:09 字數 4747 閱讀 6622

第一章 簡單程式設計 (1)

1.1刪除序列中相同的數

有16個數|1,2,2,3,4,4,5,6,6,7,8,8,8,9,10,10|,已按由小到大的順序排好,儲存 在陣列a中。試建立乙個類arr,完成刪除陣列中相同的數,經刪除後,陣列a中的內容 為 |1,2,3,4,5,6,7,8,9,10

/*c++程式設計實踐指導 

第一章 簡單程式設計

1.1刪除序列中相同的數*/

/*有16個數|1,2,2,3,4,4,5,6,6,7,8,8,8,9,10,10|,已按由小到大的順序排好,儲存 在陣列a中。試建立乙個類arr,完成刪除陣列中相同的數,經刪除後,陣列a中的內容 為 |1,2,3,4,5,6,7,8,9,10*/

#include#includeusing namespace std; //使用標準命名空間std

class arr;

class matrix

; void process();//完成求和

void show();//按二維方式輸出陣列,並輸出求和結果

private:

int m;//二維陣列的行數和列數相等,即二維陣列是m行m列的

int sum;//存放非對角線元素之和

int a[40][40];//用於存放二維陣列

};matrix::matrix(int x[40], int k) }}

void matrix::process()

sum+=a[i][j];

} }}void matrix::show()

; void descrease();//將n的各位數值分解到a陣列中,並將a陣列排列成降序

void descrease1();

void show()//螢幕顯示原數及其降序數

cout << endl;

}private:

int n;//存放5位數的整數

int a[5];//存放其元素的降序排列值

};num::num(int x )

}void num::descrease()

//show();

//對陣列a[i]中的數用冒泡法降序排序

for (int k = 0; k < 4; k++)/k<5

} }}

/*在主程式中輸人乙個5位數的任意整數,然後定義乙個num類的物件num,

用上述輸入的數 初始化num,然後完成對該類的測試*/

int main()

1.4正整數轉換成字串

建立乙個類str,將乙個任意正整數轉換為相應的字串。例如整數3456轉換為字

符串"3456"。

#includeusing namespace std;

double str2num(char* s)//字元型數轉為可計算的數

if (!decimal)

else

s++;

} return num;

}class num2str

~num2str() {}

void itoa();//將num轉換成字串並存入字元陣列s中

void print()

1.5求兩個整數集合並集

整數集合是由多個不同的整數構成,可將其存放在乙個一維整型陣列中。兩個集合的並集由屬於兩個集合的全體元素構成,注意不能出現重複元素。例如,集合a[ ]= ,集合 b=,它們的並集是 c=丨1,3,5,7,9,2,4,6|。求 並集的演算法是:先將a陣列中的全體元素放入c陣列,再依次判斷b陣列中的每乙個元素 b[ i],如果b[i]不屬於a陣列,則將b[i]加入c陣列。試建立乙個類set,完成求兩個整 數集合的並集。

#includeusing namespace std;

class set

void insert(); //求集合a和b的並集c

//int notin(int);//

int notin(int,int ,int);

void output()

cout << endl;

}private:

int a[40], b[40], c[40];//a、b用於存放已知的兩個整數集合,c用於存放a、b的並集

int numa, numb, numc;//用於存放a、b和c,3個集合實際元素的個數

}; /*建構函式,初始化資料成員 a、numa 和 b、numb。 同時,將numc初始化為0 .

x和lenl是集合a的初始化資料陣列及其元素個數;y和len2是集合b的初始化資料陣列及其元素個數。*/

set::set(int x, int len1, int y, int len2)

for (int i = 0; i < len2; i++)

numa = len1; numb = len2; numc = 0;

}/*整數elem如果不屬於集合s,則返回1;否則返回0。

/*int set::notin(int elem)//,int s,int size

} return 1;

}*/int set::notin(int elem, int s, int size)

} return 1;

}void set::insert()

int k = numc;

for (int i = 0; i < numb; i++) }

}/*在主程式中定義兩個陣列int s1、int s2用於存放兩個集合資料,

sl的初始資料為1,3,5,7,9;s2的初始資料為1,2,3,4,5,6。

定義乙個set類的物件set,用sl、s2以及它們的元素個數初始化set,然後完成對該類的測試*/

int main()

; int s2 = ;

set set(s1, sizeof(s1) / sizeof(s1[0]), s2, sizeof(s2) / sizeof(s2[0]));

set.insert();

set.output();

system("pause");

return 0;

}

1.6分數運算

#includeusing namespace std;

class fract

fract add(fract);//將引數分數f與物件自身相加,返回約簡後的分數物件

int ged(int, int);//求 m、n 的最大公約數

void show()

private:

int num, den;

};fract fract::add(fract f)//將引數分數f與物件自身相加,返回約簡後的分數物件

int fract::ged(int m, int n)//求 m、n 的最大公約數//歐幾里得演算法//輾轉相除法

return n;

}/*在主程式中定義兩個分數物件fl和f2,其初值分別是1/5和7/20,

通過fl呼叫成員函式add 完成fl和f2的相加,將得到的分數賦給分數物件f3,顯示分數物件f3*/

int main()

1.7超長數列中n個整數排序

設有乙個包含size個數的數列,要求能夠把從指定位置m開始的n個數 排列成降序,並輸出新的完整的數列。可將數列存放在一維陣列中。例如,原數列有10個數,值為 ,若要求把從第4個數開始的5個數排成降序,則得到的新數列 為。試建立乙個類list,來完成上述功能。

#includeusing namespace std;

class list

} void sortpart(int,int);//將數列從第m個元素幵始的n個數排成降序

void output()

cout << endl;

}private:

int size;//數列元素的個數

int *arr;//數列陣列的起始指標

};list::list(int a,int len)//建構函式,用len初始化size,根據size動態分配陣列儲存空間,arr指向該儲存空間

}void list::sortpart(int m, int n)//將數列從第m個元素幵始的n個數排成降序

~primenum() }

int isprimenum(int x);//判斷x是否為素數。若是素數,返冋1;否則返回0

void process();//求指定範圍內的所有素數,把它們依次存放在陣列arr中,並將求出的素數個數賦給num

void print()

}cout << endl;

}private:

int *arr;//依次存放指定範圍內求出的所有素數,arr為起始指標。

int span1, span2; //存放指定的資料範圍的下限和上限

int num;//存放spanl與span2之間的素數個數

};void primenum::process()

} arr = new int[num];

int j = 0;

for (int i = span1; i <= span2; i++) }

}int primenum::isprimenum(int x)

} return 1;

}/*定義乙個primenum類的物件test,指定查詢範圍為100〜200,

即求100〜200之間的所有素數。通過test呼叫成員函式完成求素數及輸出素數的工作*/

int main()

第一章 C 程式設計

今天終於下定決心將資料結構與演算法重新在複習一遍,先是c 的一些比較容易忘記的特性簡單的溫習一遍 包括遞迴呼叫,異常操作,類模板,函式模板等等,這三天寫得原始碼如下 book name c structure and algorithm filename chapter1.cpp version 1...

C 程式設計第一章

c 被稱之為混合型語言 1 c 的函式和物件c 將資料從乙個物件流向另乙個物件的流動抽象為流。cin,標準輸入,cout,標準輸出1 從流中獲取資料的操作稱為提取操作。當程式需要執行鍵盤輸入時,使用提取操作符 從cin輸入流中提取字元 2 向流中新增資料的操作稱為插入操作。當程式需要在螢幕上顯示輸出...

c程式語言第一章1

1,c程式都是由函式和變數組成的。練習1.6驗證布林表示式getchar eof的取值是0還是1 答 include include int main else fro c return 0 整型c記錄輸入字元的ascii碼,整型fro記錄前乙個字元的ascii碼。將fro初始化為任意的非空格字元 ...