1.1
#include<stdio.h>
int main(){
int i,j,m;
int sum=0;
scanf("%d",&m); //5以内2,3,5
if(m==0 || m==1)
sum = 0;
for(i=2;i<=m;i++){
for(j=2;j<=m;j++){
if(i%j==0)
break;
}
if(i==j)
sum+=i;
}
printf("%d",sum);
}
1.2
void SelectSort(int A[],int n){
int min;
//int temp;
for(int i = 0; i < n-1; i++){
min = i;
for(int j = i+1; j < n; j++){
if(A[j] < A[min])
min = j;
}
if(i != min){
swap(A[i],A[min]);
//temp = A[i];
//A[i] = A[min];
//A[min] = temp;
}
}
}
void swap(int &a, int &b) //引用类型方式
{
int temp; //辅助变量
temp = a;
a = b;
b = temp;
}
2.1
void MergeSort(int A[],int asc[],int n1,int desc[],int n2){
//asc(ascend)是升序,就是这个值按照从小到大进行排序;desc(descend)是降序,就是这个值按照从大到小进行
int i = 0, j = n2 - 1, k=0;
while(i < n1 && j >= 0){
if(asc[i] < desc[j]) A[k++] = asc[i++];
else A[k++] = desc[j--];
}
while(i < n) A[k++] = asc[i++];
while(j >= 0) A[k++] = desc[j--];
}
2.1
const int MAXN = 1000 + 10;
int arr[MAXN];
Partition(int left, int right){
while(left < right){
while(left < right && arr[left] <= arr[right]){
right--;
}
swap(arr[left],arr[right]);
while(left < right && arr[left] <= arr[right]){
left++;
}
swap(arr[left],arr[right]);
}
return left;
}
void QuickSort(int left, int right){
if(left < right){
int position = Partition(left, right);
QuickSort(left, position - 1);
QuickSort(position + 1,right);
}
}
for(int i=0; i<n1; i++)
A[k++] = asc[++];
for(int j = 0;j<n2-1; j++)
A[k++] = dasc[++];
while(i < n1) A[k++] = asc[i++];
while(j >= 0) A[k++] = desc[j--];
int n;
QuickSort(0,n-1);
2.2
#include<stdio.h>
#include<string.h>
void fun(char* arr){
char temp = *arr; //首元素a存放好
int len=strlen(arr);//len=5
*arr=*(arr+len-1);//最后一个元素到首位
*(arr+len-1)='\0';//最后一个元素等于\0,给定下次遍历的右范围
if(strlen(arr+1)>=2)
{
fun(arr+1);//给定下次遍历的左范围
}
*(arr+len-1)=temp;//把当前的最后元素,也就是\0,替换成首元素
}
int main(){
char arr[] = "asdfk"; //kfdsa
fun(arr);
printf("%s",arr);
return 0;
}
2.2
//#include<stdio.h>
//#include<string.h>
#include<cstdio>
#include<cstring>
void func(char str[]){
char m;//asdfk
int i,j;
for (i=0,j=strlen(str)-1 ; i < j;i++,j--){
m = str[i]; str[i] = str[j] ; str[j] = m ;
}
cout<<str<<endl;
}
int main(){
char arr[] = "asdfk";
func(arr);
printf("%s",arr);
return 0;
}
2.2
#include <iostream>
#include <cstdio>
using namespace std;
int Reverse(int x){
int revx = 0;
while(x !=0 ){
revx *= 10;
revx += x % 10;
x /= 10;
}
return revx;
}
int main(){
int a=1234;
Reverse(a); //a=4321
printf("%d",a);
return 0;
}
2.2
#include<stdio.h>
void fun(int n)
{
if(n>9)
{
fun(n/10);
}
printf("%d",n%10);
}
int main()
{
int a=1234;
fun(a);
return 0;
}
2.3
#include<stdio.h>
#include<stdlib.h>
struct node{
char data;
struct node *link;
}*head;
int main()
{
char ch;
struct node *p;
head=NULL;
while((ch=getchar())!='\n')
{
p=(struct node*)malloc(sizeof(struct node));
p->data=ch;
p->link=head;
head=p;
}
p=head;
while(p!=NULL)
{
printf("%c",p->data);
p=p->link;
}
}