/* 创建时间:20171228
创建人:fangweijun(773714759@qq.com)
功能:用函数实现输入两个整数,要求输出其中值最大者
位置:C程序设计(第四版)2010年6月第四版 176页例7.2
*/
#include<stdio.h>
int main()
{
int max(int x,int y);
int a,b,c;
printf("please enter two integer numbers:");
scanf("%d,%d",&a,&b);
c=max(a,b);
printf("max is %d\n",c);
return 0;
}
int max(int x,int y)
{
int z;
z=x>y?x:y;
return(z);
}
/*Dev-c++输出结果:
please enter two integer numbers:88,0
max is 88
*/
/* 创建时间:20171228
创建人:fangweijun(773714759@qq.com)
功能:用函数实现输入两个整数,要求输出其中值最大者(函数类型决定返回值类型)
位置:C程序设计(第四版)2010年6月第四版 178页例7.3
*/
#include<stdio.h>
int main()
{
int max(float x,float y);
float a,b,c;
printf("please enter two integer numbers:");
scanf("%f,%f",&a,&b);
c=max(a,b);
printf("max is %f\n",c);
return 0;
}
int max(float x,float y)//函数类型是整型
{
float z;
z=x>y?x:y;
return(z);//返回类型是浮点型
}
/*Dev-c++输出结果:
please enter two integer numbers:1.5,2.6
max is 2.000000
*/
/* 创建时间:20171228
创建人:fangweijun(773714759@qq.com)
功能:输入两个实数,用一个函数求出它们之和
位置:C程序设计(第四版)2010年6月第四版 180页例7.4
*/
#include<stdio.h>
int main()
{
float add(float x,float y);//或float add(float,float);
float a,b,c;
printf("Please enter a and b:");
scanf("%f,%f",&a,&b);
c=add(a,b);
printf("sum is %f\n",c);
return 0;
}
float add(float x,float y)
{
float z;
z=x+y;
return(z);
}
/*Dev-c++输出结果:
Please enter a and b:5,3
sum is 8.000000
*/
/* 创建时间:20171228
创建人:fangweijun(773714759@qq.com)
功能:输入4个整数,找出其中最大的数。用函数的嵌套调用来处理
位置:C程序设计(第四版)2010年6月第四版 183页例7.5
*/
#include<stdio.h>
//方法一:
//int main()
//{
// int max4(int a,int b,int c,int d);//声明函数
// int a,b,c,d,max;
// printf("Please enter 4 interger numbers:");
// scanf("%d %d %d %d",&a,&b,&c,&d);
// max=max4(a,b,c,d);
// printf("max=%d \n",max);
// return 0;
//}
//int max4(int a,int b,int c,int d)//返回四个整数的最大值 ,定义函数
//{
// int max2(int a,int b);//声明函数
// int m;
// m=max2(a,b);//返回a,b最大值
// m=max2(m,c);//返回a,b,c最大值
// m=max2(m,d);//返回a,b,c,d最大值
// return(m);
//}
//int max2(int a,int b)//返回两个整数的最大值
//{
// if(a>=b)
// return a;
// else
// return b;
//}
#include<stdio.h>
//方法二(改进):
int main()
{
int max4(int a,int b,int c,int d);//声明函数
int a,b,c,d,max;
printf("Please enter 4 interger numbers:");
scanf("%d %d %d %d",&a,&b,&c,&d);
max=max4(a,b,c,d);
printf("max=%d \n",max);
return 0;
}
int max4(int a,int b,int c,int d)//返回四个整数的最大值 ,定义函数
{
int max2(int a,int b);//声明函数
return max2(max2(max2(a,b),c),d);
}
int max2(int a,int b)//返回两个整数的最大值
{
return (a>b?a:b);
}
/*Dev-c++输出结果:
Please enter 4 interger numbers:11 55 2 999
max=999
*/
/*Dev-c++输出结果:
Please enter 4 interger numbers:88 22 5 1
max=88
*/
/* 创建时间:20171228
创建人:fangweijun(773714759@qq.com)
功能:有五个学生,问第5个学生年龄,他说比第4个学生大2岁;
问第4个学生年龄,他说比第3个学生大2岁;
问第3个学生年龄,他说比第2个学生大2岁;
问第2个学生年龄,他说比第1个学生大2岁;
问第1个学生年龄,他说10岁;
请问第5个学生多达?
位置:C程序设计(第四版)2010年6月第四版 185页例7.6
*/
#include<stdio.h>
int main()
{
int age(int n);//声明函数
printf("No.5,age:%d\n",age(5));
return 0;
}
int age(int n)//定义函数
{
int c;
if(n==1)
c=10;
else
c=age(n-1)+2;//比前一个学生大两岁
return(c);
}
/*Dev-c++输出结果:
No.5,age:18
*/
/* 创建时间:20171228
创建人:fangweijun(773714759@qq.com)
功能:用递归方法求n!
公式:n!(n=0,1)=1;n!(n>1)=n(n-1)! (0!=1是一种规定)
位置:C程序设计(第四版)2010年6月第四版 187页例7.7
*/
#include<stdio.h>
int main()
{
int fac(int n);
int n;
int y;
printf("input an integer number:");
scanf("%d",&n);
y=fac(n);
printf("%d!=%d\n",n,y);
return 0;
}
int fac(int n)
{
int f;
if(n<0)
printf("n<0,data error!");
else if(n==0 || n==1)//0!=1是一种规定
f=1;
else
f=fac(n-1)*n;
return(f);
}
/*Dev-c++输出结果:
input an integer number:10
10!=3628800
*/
/* 创建时间:20171228
创建人:fangweijun(773714759@qq.com)
功能:汉诺塔问题
位置:C程序设计(第四版)2010年6月第四版 189页例7.8
*/
#include<stdio.h>
int main()
{
void hanoi(int n,char one,char two,char three);//声明函数
int m;
printf("input the number of diskes:");
scanf("%d",&m);
printf("The step to move %d diskes:\n",m);
hanoi(m,'A','B','C');
return 0;
}
void hanoi(int n,char one,char two,char three)
{
//将n个盘从one座借助two座移到three座
void move(char x,char y);//函数声明
if(n==1)
move(one,three);
else
{
hanoi(n-1,one,three,two);//将n-1个盘从one座借助three座移到two
move(one,three);//将一个盘从one座到three
hanoi(n-1,two,one,three);//将n-1个盘从two座借助one座移到three
}
}
void move(char x,char y)
{
printf("%c->%c\n",x,y);
}
/*Dev-c++输出结果:
input the number of diskes:3
The step to move 3 diskes:
A->C
A->B
C->B
A->C
B->A
B->C
A->C
*/
/* 创建时间:20171228
创建人:fangweijun(773714759@qq.com)
功能:输入10个数,要求输出其中值最大的元素和该数是第几个数
位置:C程序设计(第四版)2010年6月第四版 193页例7.9
*/
#include<stdio.h>
int main()
{
int max(int x,int y);//声明函数
int a[10],m,n,i;
printf("enter 10 integer numbers:");
for(i=0;i<10;i++)
scanf("%d",&a[i]);
printf("\n");
for(i=1,m=a[0],n=0;i<10;i++)
{
if(max(m,a[i])>m)//和后面的数比较大小(重点)m存放的是已经比较过的最大值
{
m=max(m,a[i]);
n=i;//把此数组元素序号记录,放在n
}
}
printf("The largest number is %d\nit is the %dth number\n",m,n+1);
return 0;
}
int max(int x,int y)
{
return(x>y?x:y);
}
/*Dev-c++输出结果:
enter 10 integer numbers:1 2 3 4 5 6 7 8 9 10
The largest number is 10
it is the 10th number
*/
/* 创建时间:20171228
创建人:fangweijun(773714759@qq.com)
功能:有一个一维数组,内放10个学生成绩,求平均成绩
位置:C程序设计(第四版)2010年6月第四版 194页例7.10
*/
#include<stdio.h>
int main()
{
float average(float array[10]);//声明函数
float score[10],aver;
int i;
printf("input 10 scores:\n");
for(i=0;i<10;i++)
scanf("%f",&score[i]);
printf("\n");
aver=average(score);//实参为数组名,传递的是数组首元素的地址,实参会被形参所改变即:score[10]数组会被array[10]改变
printf("average score is %5.2f\n",aver);
return 0;
}
float average(float array[10])
{
int i;
float aver,sum=array[0];//定义并初始化sum为第一个学生的成绩
for(i=1;i<10;i++)//将第二个到第十个学生成绩累加到sum中
sum=sum+array[i];
aver=sum/10;//求是个学生的平均成绩
return(aver);
}
/*Dev-c++输出结果:
input 10 scores:
100 56 78 98 67.5 99 54 88.5 76 58
average score is 77.50
*/
/* 创建时间:20171228
创建人:fangweijun(773714759@qq.com)
功能:有两个班级,分别有35名和30名学生,调用一个average函数,分别求这两个班的学生的平均成绩
位置:C程序设计(第四版)2010年6月第四版 195页例7.11
*/
#include<stdio.h>
int main()
{
float average(float array[],int n);
float score1[5]={98.5,97,91.5,60,55};
float score2[10]={67.5,89.5,99,69.5,77,89.5,76.5,54,60,99.5};
printf("The average of class A is %6.2f\n",average(score1,5));
printf("The average of class B is %6.2f\n",average(score2,10));
return 0;
}
float average(float array[],int n)
{
int i;
float aver,sum=array[0];
for(i=1;i<n;i++)//第二个到第n个的数
sum=sum+array[i];
aver=sum/i;
return(aver);
}
/*Dev-c++输出结果:
The average of class A is 80.40
The average of class B is 78.20
*/
/* 创建时间:20171228
创建人:fangweijun(773714759@qq.com)
功能:用选择法对数组中10个整数按由小到大排序
位置:C程序设计(第四版)2010年6月第四版 196页例7.12
*/
#include<stdio.h>
int main()
{
void sort(int array[],int n);//声明函数
int a[10],i;
printf("enter array:\n");
for(i=0;i<10;i++)
scanf("%d",&a[i]);//输入10个整数存进数组
sort(a,10);//选择法排序 ,传入数组名即:数组的首地址,返回的值将改变数组中各元素的值
printf("The sorted array:\n");
for(i=0;i<10;i++)//输出排序好的数组
printf("%d ",a[i]);//函数的形参将影响实参,因为数组的地址是一样的
printf("\n");
return 0;
}
void sort(int array[],int n)//定义函数,参数是:不确定长度的数据,个数
{
int i,j,k,t;
for(i=0;i<n-1;i++)
{
k=i;
for(j=i+1;j<n;j++)//后面的数
if(array[j]<array[k])//找出最小的数
k=j;
t=array[k];//最小的数交换
array[k]=array[i];
array[i]=t;
}
}
/*Dev-c++输出结果:
enter array:
11 22 12 1 0 23 5 89 5 2
The sorted array:
0 1 2 5 5 11 12 22 23 89
*/
/* 创建时间:20171228
创建人:fangweijun(773714759@qq.com)
功能:有一个3*4的矩阵,求所有元素中的最大值
位置:C程序设计(第四版)2010年6月第四版 198页例7.13
*/
#include<stdio.h>
int main()
{
int max_value(int array[][4],int n);
int a[3][4]={{1,3,5,7},{2,4,6,8},{15,17,34,12}};
printf("Max value is %d\n",max_value(a,3));
return 0;
}
int max_value(int array[][4],int n)
{
int i,j,max;
max=array[0][0];
for(i=0;i<n;i++)//遍历每行
for(j=0;j<4;j++)// 遍历每列
if(array[i][j]>max)
max=array[i][j];
return(max);
}
/*Dev-c++输出结果:
Max value is 34
*/
/* 创建时间:20171228
创建人:fangweijun(773714759@qq.com)
功能:有一个一维数组,内放10个学生成绩,写一个函数,当主函数调用此函数后,能求出平均分,最高分和最低分
位置:C程序设计(第四版)2010年6月第四版 201页例7.14
*/
#include<stdio.h>
float Max=0,Min=0;
int main()
{
float average(float array[],int n);
float ave,score[10];
int i;
printf("Please enter 10 scores:");
for(i=0;i<10;i++)
scanf("%f",&score[i]);
ave=average(score,10);
printf("max=%6.2f\nmin=%6.2f\naverage=%6.2f\n",Max,Min,ave);
return 0;
}
float average(float array[],int n)
{
int i;
float aver,sum=array[0];
Max=Min=array[0];
for(i=0;i<n;i++)
{
if(array[i]>Max)
Max=array[i];
else if(array[i]<Min)
Min=array[i];
sum=sum+array[i+1];//书上是错的,前面已经将array[0]赋值给sum了,不需要重复赋值
}
aver=sum/n;
return(aver);
}
/*Dev-c++输出结果:
Please enter 10 scores:89 95 87.5 100 67.5 97 59 84 73 90
max=100.00
min= 59.00
average= 84.20
*/
/* 创建时间:20171228
创建人:fangweijun(773714759@qq.com)
功能:若外部变量与局部变量同名,分析结果
位置:C程序设计(第四版)2010年6月第四版 203页例7.15
*/
#include<stdio.h>
int a=3,b=5;
int main()
{
int max(int a,int b);
int a=8;//全局变量被局部变量屏蔽
printf("max=%d\n",max(a,b));
return 0;
}
int max(int a,int b)
{
return(a>b?a:b);
}
/*Dev-c++输出结果:
max=8
*/
/* 创建时间:20171228
创建人:fangweijun(773714759@qq.com)
功能:考察静态局部变量的值
位置:C程序设计(第四版)2010年6月第四版 205页例7.16
*/
#include<stdio.h>
int main()
{
int f(int);//函数声明
int a=2,i;
for(i=0;i<3;i++)
printf("%d\n",f(a));
return 0;
}
int f(int a)
{
auto int b=0;
static c=3;
b=b+1;
c=c+1;
return(a+b+c);
}
/*Dev-c++输出结果:
7
8
9
*/
/* 创建时间:20171228
创建人:fangweijun(773714759@qq.com)
功能:输出1到5的阶乘值(用静态局部变量static)
位置:C程序设计(第四版)2010年6月第四版 207页例7.17
*/
#include<stdio.h>
int main()
{
int fac(int n);
int i;
for(i=1;i<=5;i++)
printf("%d!=%d\n",i,fac(i));
return 0;
}
int fac(int n)
{
static int f=1;
f=f*n;
return(f);
}
/*Dev-c++输出结果:
1!=1
2!=2
3!=6
4!=24
5!=120
*/
/* 创建时间:20171228
创建人:fangweijun(773714759@qq.com)
功能:调用函数,求3个整数中的大者(用外部变量声明extern)
位置:C程序设计(第四版)2010年6月第四版 208页例7.18
*/
#include<stdio.h>
int main()
{
int max();
extern int A,B,C;
printf("Please enter three integer numbers:");
scanf("%d %d %d",&A,&B,&C);
printf("max is %d\n",max());
return 0;
}
int A,B,C;
int max()
{
int m;
m=A>B?A:B;
if(C>m)
m=C;
return(m);
}
/*Dev-c++输出结果:
Please enter three integer numbers:5 2 1
max is 5
*/
/* 创建时间:20171228
创建人:fangweijun(773714759@qq.com)
功能: 给定b的值,输入a和m,求a*b和a^m的值(file1.c)
位置:C程序设计(第四版)2010年6月第四版 210页例7.19
*/
#include<stdio.h>
int A;
int main()
{
int power(int);
int b=3,c,d,m;
printf("enter the number a and its power m:\n");
scanf("%d,%d",&A,&m);
c=A*b;
printf("%d*%d=%d\n",A,b,c);
d=power(m);
printf("%d**%d=%d\n",A,m,d);
return 0;
}
/*Dev-c++输出结果:
enter the number a and its power m:
13,3
13*3=39
13**3=2197
*/
/* 创建时间:20171228
创建人:fangweijun(773714759@qq.com)
功能: 给定b的值,输入a和m,求a*b和a^m的值(file2.c)
位置:C程序设计(第四版)2010年6月第四版 210页例7.19
*/
extern A;
int power(int n)
{
int i,y=1;
for(i=1;i<=n;i++)
y*=A;
return(y);
}
/*Dev-c++输出结果:
enter the number a and its power m:
13,3
13*3=39
13**3=2197
*/
/* 创建时间:20171228
创建人:fangweijun(773714759@qq.com)
功能: 有一个字符串,内有诺干个字符,现输入一个字符,要求程序将字符串中该字符删去,用外部函数实现(file1.c)
位置:C程序设计(第四版)2010年6月第四版 216页例7.20
*/
#include<stdio.h>
//extern void enter_string(char str[]);
//extern void delete_string(char str[],char ch);
//extern void print_string(char str[]);
//或者可以写成声明形式放进main函数里面
int main()
{
void enter_string(char str[]);
void delete_string(char str[],char ch);
void print_string(char str[]);
char c,str[80];
enter_string(str);//file2
printf("请输入要删除的字符:\n");
scanf("%c",&c);
delete_string(str,c);//file3
print_string(str); //file4
return 0;
}
/*Dev-c++输出结果:
请输入字符串:i am a student
请输入要删除的字符:
iamastudent
*/
/* 创建时间:20171228
创建人:fangweijun(773714759@qq.com)
功能: 有一个字符串,内有诺干个字符,现输入一个字符,要求程序将字符串中该字符删去,用外部函数实现(file2.c)
位置:C程序设计(第四版)2010年6月第四版 216页例7.20
*/
#include<stdio.h>
void enter_string(char str[80])
{
printf("请输入字符串:");
gets(str);
}
/*Dev-c++输出结果:
请输入字符串:i am a student
请输入要删除的字符:
iamastudent
*/
/* 创建时间:20171228
创建人:fangweijun(773714759@qq.com)
功能: 有一个字符串,内有诺干个字符,现输入一个字符,要求程序将字符串中该字符删去,用外部函数实现(file3.c)
位置:C程序设计(第四版)2010年6月第四版 216页例7.20
*/
void delete_string(char str[],char ch)
{
int i,j;
for(i=j=0;str[i]!='\0';i++)
if(str[i]!=ch)
str[j++]=str[i];
str[j]='\0';
}
/*Dev-c++输出结果:
请输入字符串:i am a student
请输入要删除的字符:
iamastudent
*/
/* 创建时间:20171228
创建人:fangweijun(773714759@qq.com)
功能: 有一个字符串,内有诺干个字符,现输入一个字符,要求程序将字符串中该字符删去,用外部函数实现(file4.c)
位置:C程序设计(第四版)2010年6月第四版 216页例7.20
*/
void print_string(char str[])
{
printf("%s\n",str);
}
/*Dev-c++输出结果:
请输入字符串:i am a student
请输入要删除的字符:
iamastudent
*/
/* 创建时间:20171228
创建人:fangweijun(773714759@qq.com)
功能:写两个函数,分别求两个整数的最大公约数和最小公倍数,用主函数调用这两个函数,并输出结果。两个整数由键盘输入
位置:C程序设计(第四版)2010年6月第四版 218页习题1
*/
#include<stdio.h>
//方法一:返回值
//int main()
//{
// int hcf(int,int);//声明求最大公约数的函数
// int lcd(int,int,int);//声明求最小公倍数的函数
// int u,v,h,l;
// scanf("%d,%d",&u,&v);
// h=hcf(u,v);
// printf("H.C.F=%d\n",h);
// l=lcd(u,v,h);
// printf("L.C.D=%d\n",l);
// return 0;
//}
//int hcf(int u,int v)
//{
辗转相除法求最大公约数
如果v>u,则调换位置,保证被除数大于除数
u%v不等于0的时候,将除数变成被除数,余数变成除数,直到u%v==0
// int t,r;
// if(v>u)
// {
// t=u;
// u=v;
// v=t;
// }
// while((r=u%v)!=0)
// {
// u=v;
// v=r;
// }
// return(v);
//}
//int lcd(int u,int v,int h)
//{
最小公倍数=两数相乘除以最大公约数
// return(u*v/h);
//}
//方法二:全局变量
int Hcf,Lcd;
int main()
{
void hcf(int,int);//声明求最大公约数的函数
void lcd(int,int);//声明求最小公倍数的函数
int u,v;
scanf("%d,%d",&u,&v);
hcf(u,v);
lcd(u,v);
printf("H.C.F=%d\n",Hcf);
printf("L.C.D=%d\n",Lcd);
return 0;
}
void hcf(int u,int v)
{
//辗转相除法求最大公约数
//如果v>u,则调换位置,保证被除数大于除数
//u%v不等于0的时候,将除数变成被除数,余数变成除数,直到u%v==0
int t,r;
if(v>u)
{
t=u;
u=v;
v=t;
}
while((r=u%v)!=0)
{
u=v;
v=r;
}
Hcf=v;
}
void lcd(int u,int v)
{
//最小公倍数=两数相乘除以最大公约数
Lcd=u*v/Hcf;
}
/*Dev-c++输出结果:
24,16
H.C.F=8
L.C.D=48
*/
/*Dev-c++输出结果:
13,3
H.C.F=1
L.C.D=39
*/
/* 创建时间:20171228
创建人:fangweijun(773714759@qq.com)
功能:求二元一次方程的根,用3个函数分别求当:b^2-4ac>0;b^2-4ac=0;b^2-4ac<0;时并输出结果。从主函数输入a,b,c.
位置:C程序设计(第四版)2010年6月第四版 218页习题2
*/
#include<stdio.h>
#include<math.h>
float x1,x2,disc,p,q;
int main()
{
void greater_than_zero(float,float);
void equal_to_zero(float,float);
void smaller_than_zero(float,float);
float a,b,c;
printf("input a,b,c:");
scanf("%f,%f,%f",&a,&b,&c);
printf("equation:%5.2f*x*x+%5.2f*x+%5.2f=0\n",a,b,c);
disc=b*b-4*a*c;
printf("root:\n");
if(disc>0)
{
greater_than_zero(a,b);
printf("x1=%f\t\tx2=%f\n",x1,x2);
}
else if(disc==0)
{
equal_to_zero(a,b);
printf("x1=%f\t\tx2=%f\n",x1,x2);
}
else
{
smaller_than_zero(a,b);
printf("x1=%f+%fi\tx2=%f-%fi\n",p,q,p,q);
}
return 0;
}
void greater_than_zero(float a,float b)
{
x1=(-b+sqrt(disc))/(2*a);
x2=(-b+sqrt(disc))/(2*a);
}
void equal_to_zero(float a,float b)
{
x1=x2=(-b)/(2*a);
}
void smaller_than_zero(float a,float b)
{
//复根
p=-b/(2*a);
q=sqrt(-disc)/(2*a);
}
/*Dev-c++输出结果:
input a,b,c:2,4,1
equation: 2.00*x*x+ 4.00*x+ 1.00=0
root:
x1=-0.292893 x2=-0.292893
*/
/*Dev-c++输出结果:
input a,b,c:1,2,1
equation: 1.00*x*x+ 2.00*x+ 1.00=0
root:
x1=-1.000000 x2=-1.000000
*/
/*Dev-c++输出结果:
input a,b,c:2,4,3
equation: 2.00*x*x+ 4.00*x+ 3.00=0
root:
x1=-1.000000+0.707107i x2=-1.000000-0.707107i
*/
/* 创建时间:20171228
创建人:fangweijun(773714759@qq.com)
功能:写一个判断素数的函数,在主函数输入一个整数,输出是否为素数的信息
位置:C程序设计(第四版)2010年6月第四版 218页习题3
*/
#include<stdio.h>
float x1,x2,disc,p,q;
int main()
{
int prime(int);
int n;
printf("input an integer:");
scanf("%d",&n);
if(prime(n))
printf("%d is a prime\n",n);
else
printf("%d is not a prime\n",n);
return 0;
}
int prime(int n)
{
int flag=1,i;
for(i=2;i<n/2 && flag==1;i++)
if(n%i==0)//能被2~n/2除就不是素数
flag=0;
return(flag);
}
/*Dev-c++输出结果:
input an integer:10
10 is not a prime
*/
/*Dev-c++输出结果:
input an integer:5
5 is a prime
*/
/* 创建时间:20171228
创建人:fangweijun(773714759@qq.com)
功能:写一个函数,使给定的一个3*3的二维整型数组转置,即行列互换
位置:C程序设计(第四版)2010年6月第四版 218页习题4
*/
#include<stdio.h>
#define N 3
int array[N][N];
int main()
{
void convert(int array[][3]);
int i,j;
printf("input array:\n");
for(i=0;i<N;i++)
for(j=0;j<N;j++)
scanf("%d",&array[i][j]);
printf("\noriginal array:\n");
for(i=0;i<N;i++)
{
for(j=0;j<N;j++)
printf("%5d",array[i][j]);
printf("\n");
}
printf("\n");
convert(array);
for(i=0;i<N;i++)
{
for(j=0;j<N;j++)
printf("%5d",array[i][j]);
printf("\n");
}
return 0;
}
void convert(int array[][3])//定义转置数组函数
{
int i,j,t;
for(i=0;i<N;i++)
for(j=i+1;j<N;j++)//只交换array[0][1],array[0][2],array[1][2]
{
t=array[i][j];
array[i][j]=array[j][i];
array[j][i]=t;
}
}
/*Dev-c++输出结果:
input array:
1 2 3
4 5 6
7 8 9
original array:
1 2 3
4 5 6
7 8 9
1 4 7
2 5 8
3 6 9
*/
/* 创建时间:20171228
创建人:fangweijun(773714759@qq.com)
功能:写一个函数,使输入的一个字符串按反序存放,在主函数中输入和输出字符串
位置:C程序设计(第四版)2010年6月第四版 218页习题5
*/
#include<stdio.h>
#include<string.h>
int main()
{
void inverse(char str[]);
char str[100];
printf("input string:");
scanf("%s",str);
inverse(str);
printf("inverse string:%s\n",str);
return 0;
}
void inverse(char str[])
{
char t;
int i,j;
for(i=0,j=strlen(str);i<(strlen(str)/2);i++,j--)//字母交换
{
t=str[i];
str[i]=str[j-1];
str[j-1]=t;
}
}
/*Dev-c++输出结果:
input string:fangweijun
inverse string:nujiewgnaf
*/
/* 创建时间:20171228
创建人:fangweijun(773714759@qq.com)
功能:写一个函数,将两个字符串连接
位置:C程序设计(第四版)2010年6月第四版 218页习题6
*/
#include<stdio.h>
int main()
{
void concatenate(char string1[],char string2[],char string[]);
char s1[100],s2[100],s[100];
printf("input string1:");
scanf("%s",s1);
printf("input string2:");
scanf("%s",s2);
concatenate(s1,s2,s);
printf("\nThe new string is %s\n",s);
return 0;
}
void concatenate(char string1[],char string2[],char string[])
{
int i,j;
for(i=0;string1[i]!='\0';i++)
string[i]=string1[i];
for(j=0;string2[j]!='\0';j++)
string[i+j]=string2[j];//接在sr1后面
string[i+j]='\0'; //结束符
}
/*Dev-c++输出结果:
input string1:fang
input string2:weijun
The new string is fangweijun
*/