對應題目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 50
int 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 8
void 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;//dd
return 0;
}
下面兩個題個人感覺比較經典;因爲這是兩種很重要的排序方法,冒泡排序法和選擇排序法;
我冒泡做的還行,選擇就有點悲劇了;看了好久纔看懂;下面做一下簡單的介紹;
冒泡排序法,就是每次把相鄰的兩個數交換,較大的數交換到後面。即第一次交換從第一個開始逐個交換到最後一個;第二次只要到最後第二個就行了;這樣就可以把最大或者最小的數放到最後,n個數進行n-1次循環就好了;
比較排序法是,反覆從要排的數中找出最大或者最小的和第一個數進行交換;
一開始我沒弄明白這兩種方法,後來研究了很久,簡單的說吧,冒泡就是交換數組,而選擇是通過比較把符合要求的數的下標比較出來,然後再進行對換;
下面是這兩個很簡單的程序的實例;
4.
#include <iostream.h>
#define N 10
void 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 10
void 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;
}