// 7_array.cpp : 定义控制台应用程序的入口点。
//
#include "stdafx.h"
#include<stdio.h>
#include<iostream>
using namespace std ;
/************函数的声部分**************/
void screen_prime();
void select_sort(int a[]);
int sum_diagonal();
void insert_array(int x , int a[]);
void reverse_array(int a[] , int n);
int _tmain(int argc, _TCHAR* argv[])
{
screen_prime();
int a[10] = {2,5,7,1,4,9,6,12,10,8};
select_sort(a);
for(int i = 0 ; i < 10 ; i++)
cout<<a[i] << " " ;
cout<<endl;
cout<<sum_diagonal()<<endl;
int b[5] = {8,6,5,4,1};
int n = sizeof(b)/4 ;
reverse_array(b , n);
for(int i = 0 ; i < 5 ; i++)
cout<<b[i] << " " ;
cout<<endl;
getchar();
getchar();
return 0;
}
/************7.1用筛选法求素数begin**************/
void screen_prime()
{
int i , j ;
int a[100] ;
for(i = 0 ; i < 99 ; i++)
a[i] = i + 2 ;
cout<<endl;
}
/************7.1用筛选法求素数end**************/
/************7.2用选择法求素数begin**************/
void select_sort(int a[])
{
int i , j ,temp , k = 0;
for(i = 1 ; i < 10 ; i++)
{
k = i ;
for(j = i-1 ; j >= 0 ; j--)
{
if(a[i] < a[j])
{
temp = a[i];
a[i] = a[j] ;
a[j] = temp ;
i = j ;
}
else
break;
}
i = k ;
}
}
/************7.2用选择法求素数end**************/
/************7.3求3*3整型矩阵对角线之和begin**************/
int sum_diagonal()
{
int a[3][3] = {1,2,3,4,5,6,7,8,9};
int sum = 0 ;
int i , j ;
/* for(i = 0 ; i < 3 ;i++)
for(j = 0 ; j < 3 ; j++)
scanf_s("%d",&a[i][j]);
*/
for(i = 0 ; i < 3 ; i++)
for(j = 0 ; j < 3 ; j++)
{
if(i == j)
sum += a[i][j];
}
return sum;
}
/************7.3求3*3整型矩阵对角线之和end**************/
/************7.4在已排好序的数组中插入一个数begin**************/
/*
几点疑问:1)数组空间动态开辟问题
2)查找对比数据
3)其余数据的移动
*/
void insert_array(int x , int a[])
{
}
/************7.4在已排好序的数组中插入一个数end**************/
/************7.5数组中的值逆序存放begin**************/
void reverse_array(int a[] , int n)
{
int i = 0 ;
int j = n - 1 ;
int temp ;
while(i < j)
{
temp = a[i];
a[i] = a[j];
a[j] = temp ;
i++ ;
j--;
}
}
/************7.5数组中的值逆序存放begin**************/
// 3_4_itoa.cpp : 定义控制台应用程序的入口点。
//
#include "stdafx.h"
#include<stdio.h>
#include<iostream>
using namespace std ;
#define MAXLINE 100
void itoa(int n , char s[]);
void reverse(char s[]);
int _tmain(int argc, _TCHAR* argv[])
{
char s[MAXLINE];
itoa(123 , s) ;
cout<<s <<endl;
getchar();
return 0;
}
//求出来的数字是倒着存储在数组中的,应该是可以使用递归的方法进行改进的
void itoa(int n , char s[])
{
int i = 0 ;
int sign = 0;
//处理负数的情况,将负数转化成正数情况
if(n < 0)
{
sign = -1 ;
n = -n ;
}
do{
s[i++] = n % 10 + '0' ;
}while((n/=10) > 0);
/* while( (n/10) >= 0 )
{
s[i++] = n % 10 + '0' ;
n = n /10 ;
} */
if(sign < 0 )
s[i++] = '-' ;
s[i] = '\0';
reverse(s);
}
void reverse(char s[])
{
int i , j ,temp ;
for(i = 0 , j = strlen(s)-1 ; i < j ; i++ , j--)
{
temp = s[i];
s[i] = s[j];
s[j] = temp ;
}
}
// 4_13_reverse.cpp : 定义控制台应用程序的入口点。
//
#include "stdafx.h"
#include<iostream>
using namespace std ;
#define MAXLEN 100
/***********将字符串s倒置***************/
void reverse(char s[]);
int _tmain(int argc, _TCHAR* argv[])
{
char s[] = {"abcdefg"};
reverse(s);
cout<<s << endl;
getchar();
return 0;
}
void reverse(char s[])
{
void reverser(char s[] , int i , int len);
reverser(s , 0 , strlen(s)-1);
}
void reverser(char s[] , int i , int len)
{
int temp ;
//j = len - (i+1);
if(i < len )
{
temp = s[i] ;
s[i] = s[len];
s[len] = temp ;
reverser(s , ++i , --len);
}
}