C++编程练习——2014/3/12

来源:互联网 发布:2017淘宝网红店铺排名 编辑:程序博客网 时间:2024/06/05 03:16

对应题目26-30

1.

#include <iostream.h>#include <cmath>int convert(char* strOct){int Dec=0;while(*strOct){Dec=Dec*8+(*strOct)-'0';strOct++;}return Dec;}int main(){cout<<convert("7")<<endl;cout<<convert("10")<<endl;cout<<convert("1234")<<endl;return 0;}

进制转换时候的循环没有弄清,题目做的很悲剧

2.

#include<iostream.h>#include<cmath>#define NUM 50int A[NUM][NUM]={{10,13,59,70,6},{2,40,89,92,9},{14,55,71,11,19},{79,68,83,97,101},{102,10001,23,45}};bool isPrime(int n){if(n==1)return false;if(n==2)return true;for(int i=2;i<n/2;i++){if(n%i==0)return false;}return true;}int sum(int A[NUM][NUM],int n){int s=0;for(int i=0;i<n;i++){for(int j=0;j<n;j++){if(!isPrime(A[i][j]))s+=A[i][j];}}return s;}int main(){cout<<sum(A,5)<<endl;return 0;}


这题基本就考了一个循环条件;比较基础。

3.

这题很简单

#include <iostream.h>#define NUM 8void func(int A[NUM],int n){    int temp;for(int i=0;i<n/2;i++){temp=A[i];    A[i]=A[n-i];A[n-i]=temp;}}int main(){int A[NUM]={1,2,3,4,5,6,7,8};func(A,6);for(int i=0;i<sizeof(A)/sizeof(int);i++){cout<<A[i]<<' ';}cout<<endl;//ddreturn 0;}

下面两个题个人感觉比较经典;因为这是两种很重要的排序方法,冒泡排序法和选择排序法;

我冒泡做的还行,选择就有点悲剧了;看了好久才看懂;下面做一下简单的介绍;

冒泡排序法,就是每次把相邻的两个数交换,较大的数交换到后面。即第一次交换从第一个开始逐个交换到最后一个;第二次只要到最后第二个就行了;这样就可以把最大或者最小的数放到最后,n个数进行n-1次循环就好了;

比较排序法是,反复从要排的数中找出最大或者最小的和第一个数进行交换;

一开始我没弄明白这两种方法,后来研究了很久,简单的说吧,冒泡就是交换数组,而选择是通过比较把符合要求的数的下标比较出来,然后再进行对换;

下面是这两个很简单的程序的实例;

4.

#include <iostream.h>#define N 10void sort(int A[N],int n){int temp,i,j;for(i=0;i<n;i++){for(j=0;j<n-i;j++){if(A[j]>A[j+1]){temp=A[j];A[j]=A[j+1];A[j+1]=temp; }}}}int main(){int A[N]={5,7,4,6,10,13,78,-4,9,20};sort(A,10);for(int i=0;i<sizeof(A)/sizeof(int);i++){cout<<A[i]<<' ';}cout<<endl;return 0;}

5.

#include <iostream.h>#define N 10void sort(int A[N],int n){int temp=0;for(int i=0;i<n-1;i++){int k=i;for(int j=i+1;j<n;j++){if(A[k]>A[j])    k=j;}        if(k!=i){temp=A[i];A[i]=A[k];A[k]=temp;}}}int main(){int A[N]={1,2,10,5,7,19,34,78,-3,8};sort(A,10);for(int i=0;i<sizeof(A)/sizeof(int);i++){cout<<A[i]<<' ';}cout<<endl;return 0;}


0 0
原创粉丝点击