第一章 簡單程式設計 (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初始化為任意的非空格字元 ...