C语言实验及代码(详细注释)

实验要求及代码展示

  • 实验要求
    输入一个摄氏温度,将其转换为华氏温度
#include                  //编译预处理指令 
int main()                         //定义主函数 
{                                  //主函数开始 
	float f,c;                     //定义变量f,c为单精度浮点型 
	c=24.5;                        //对变量f赋值 
	f=(9.0/5)*c+32;                //利用公式计算c的值 
	printf("华氏温度为:%f\n",f);    //输出f的值 
	return 0;                      //返回函数值0 
}                                  //主函数结束
  • 实验要求
    已知x为int型变量,值为8,y为float型变量,值为5.5,z为double型变量,值为14.5,求s=22+‘B’+x*y-z/5的值
#include       //编译预处理指令 
int main()              //定义主函数 
{                       //主函数开始 
	int x;              //定义变量x为整型 
	float y;            //定义变量y为单精度浮点型 
	double z,s;         //定义变量z,s为双精度浮点型
	char c;             //定义变量c为字符型 
	x=8;                //对变量x赋值 
	y=5.5;              //对变量y赋值 
	z=14.5;             //对变量z赋值 
	c='B';              //将字符‘B’的ASCⅡ代码放到c变量中 
	s=22+'B'+x*y-z/5;   //计算s的值 
	printf("s=%f\n",s); //输出s的值 
	return 0;           //返回函数值0 
}                       //主函数结束

  • 实验要求
    已知圆半径r=3.5,圆柱高h=2.5,求圆柱体积。要求用scanf输入数据,输出结果保留3位小数
#include               //编译预处理指令 
int main()                      //定义主函数 
{                               //主函数开始 
	float Pi=3.141,r,h,area,V;  //定义变量Pi,r,h,area,V为浮点型 
	scanf("%f,%f",&r,&h);       //从键盘输入r,h的值 
	area=(Pi)*r*r;              //计算area的值 
	V=(area)*h;                 //计算V的值 
	printf("%.3f\n",V);         //输出V的值 
	return 0;                   //返回函数值0 
}                               //主函数结束

  • 实验要求
    求解方程x2+3x+2=0的根
#include                  //编译预处理指令 
#include                   //编译预处理指令
int main()                         //定义主函数 
{                                  //主函数开始 
	float a,b,c,disc,x1,x2,p,q;    //定义变量a,b,c,disc,x1,x2,p,q为浮点型
	a=1.0;                         //对变量a赋值 
	b=3.0;                         //对变量b赋值
	c=2.0;                         //对变量c赋值
	disc=b*b-4*a*c;                //计算判别式disc的值 
	p=-b/(2.0*a);                  //计算对称轴p的值 
	q=sqrt(disc)/(2.0*a);          //计算q的值 
	x1=p+q;                        //计算x1的值 
	x2=p-q;                        //计算x2的值 
	printf("x1=%f\nx2=%f",x1,x2);  //输出x1,x2的值 
	return 0;                      //返回函数值0 
}                                  //主函数结束

  • 实验要求
    已知三角形的三边长a=4.58,b=6.45,c=4.28,求三角形面积area
#include                   //编译预处理指令 
int main()                          //定义主函数 
{                                   //主函数开始 
	float a,b,c,s,area;             //定义变量a,b,c,s,area为浮点型 
	a=4.58;                         //对变量a赋值
	b=6.45;                         //对变量b赋值
	c=4.28;                         //对变量c赋值
	s=(a+b+c)/2;                    //计算s的值 
	area=sqrt(s*(s-a)*(s-b)*(s-c)); //计算area的值 
	printf("area=%f\n",area);       //输出area的值 
	return 0;                       //返回函数值0
}                                   //主函数结束

  • 实验要求
    存款利息的计算。有 1000 元,想存 5 年,可按以下 5 种办法存:
    (1) 一次存 5 年期。
    (2) 先存 2 年期,到期后将本息再存 3 年期。
    (3) 先存3-年期,到期后将本息再存 2 年期。
    (4) 存1 年期,到期后将本息再存 1 年期,连续存 5 次。
    (5) 存活期存款。活期利息每一季度结算一次。
    2017 年的银行存款利息如下:
    1 年期定期存款利息为 1.5%;
    ······
    《C程序设计(第五版)》p80
#include              //编译预处理指令            
#include               //编译预处理指令
int main()                     //定义主函数                
{                              //主函数开始                
	float p,p1,p2,p3,p4,p5;    //定义变量p,p1,p2,p3,p4,p5为单精度浮点型
	float r0,r1,r2,r3,r4;      //定义变量r0,r1,r2,r3,r4为单精度浮点型
	p=1000;                    //对变量p赋值 
	r0=0.0035;                 //对变量r0赋值 
	r1=0.015;                  //对变量r1赋值 
	r2=0.021;                  //对变量r2赋值 
	r3=0.0275;                 //对变量r3赋值 
	r4=0.03;                   //对变量r4赋值 
	p1=p*(1+r4*5);             //一次存5年 
	p2=p*(1+2*r2)*(1+3*r3);    //先存2年期,到期后将本息再存3年 
	p3=p*(1+3*r3)*(1+2*r2);    //先存3年期,到期后将本息再存2年
	p4=p*pow(1+r1,5);          //存1年期,到期后将本息再存1年,连续存5次 
	p5=p*pow(1+r0/4,4*5);      //活期存款,活期利息每一季度结算一次 
	printf("p1=%f\n",p1);      //输出方案1的本息和 
	printf("p2=%f\n",p2);      //输出方案2的本息和
	printf("p3=%f\n",p3);      //输出方案3的本息和
	printf("p4=%f\n",p4);      //输出方案4的本息和
	printf("p5=%f\n",p5);      //输出方案5的本息和
	return 0;                  //返回函数值0 
}                              //主函数结束

  • 实验要求
    给定一个小写字母f,要求以ASCII码的形式输出其对应大写字母的值
#include        //编译预处理指令  
int main()               //定义主函数      
{                        //主函数开始      
	char c1,c2;          //定义变量c1,c2为字符类型 
	c1='f';              //将字符‘f’的ASCⅡ代码放到c1变量中             
	c2=c1-32;            //得到相应字符的ASCⅡ代码,放到c2变量中 
	printf("输入的字母为:%c\n",c1);        
	printf("该字母对应大写字母ASCII码的值为:%d\n",c2);  //输出c2的值为相应字符的ASCⅡ代码 
	return 0;            //返回函数值0 
}                        //主函数结束

  • 实验要求
    输入一个字符,判别该字符否为小写字母,若是,则将其转换成大写字母,否则不转换,并输出最后得到的字符
#include                              //编译预处理指令     
int main()                                     //定义主函数         
{                                              //主函数开始         
	char ch;                                   //定义ch为字符变量
	scanf("%c",&ch);                           //从键盘输入相应字母
	ch=(ch>='a'&&ch<='z')?(ch-32):ch;          //判断输入的字符是否为大写字母 
	printf("%c\n",ch);                         //输出相应字母大写形式 
	return 0;                                  //返回函数值0 
}                                              //主函数结束

  • 实验要求
    输入3个实数a,b,c,输出其中最大的数。(用条件表达式)
#include                          //编译预处理指令     
int main()                                 //定义主函数         
{                                          //主函数开始         
	double a,b,c,t;                        //定义a,b,c,t双精度浮点型变量
	scanf("%lf,%lf,%lf",&a,&b,&c);         //从键盘输入a,b,c的值 
	t=(a>b)?a:(t=(b>c)?b:c);               //判断 a,b,c的值的大小关系 
	printf("%lf",t);                       //输出最大实数的值 
	return 0;                              //返回函数值0 
}                                          //主函数结束

  • 实验要求
    输入一个年份,判断该年份是否是闰年,并输出结果
#include                             //编译预处理指令 
int main()                                    //定义主函数 
{                                             //主函数开始 
	int year,leap;                            //定义year,leap为整型 
	printf("请输入年份:");                   //输出字符 
	scanf("%d",&year);                        //输入年份 
	if(year%4==0)                             //判断年份是否能被4整除 
	{
		if(year%100==0)                       //判断年份是否能被100整除 
		{
			if(year%400==0)                   //判断年份是否能被400整除 
			leap=1;                           //闰年为真值 
			else
			leap=0;                           //非闰年为假值 
		 }
		 else
		 leap=1;                             //闰年为真值 
	}
	else
	leap=0;                                  //非闰年为假值 
	if(leap)
	printf("%d是",year);                     //输出是闰年 
	else
	printf("%d不是",year);                   //输出不是闰年 
	printf("闰年\n");
	return 0;                                //返回函数值0 
	
 }

  • 实验要求
    输入一个百分制成绩,要求输出成绩等级’A’、‘B’、‘C’、‘D’、‘E’。90~100分为’A’,80~89分为’B’,70~79分为’C’,60~69分为’D’,0~59为’E’。(用switch语句)
#include                              //编译预处理指令 
int main()                                     //定义主函数 
{                                              //主函数开始 
	int score;                                 //定义score为整型 
	printf("请输入你的分数:");                 //输入提示  
	scanf("%d",&score);                        //从键盘输入相应分数 
	switch(score/10)                           //得到score/10的值,取整 
		{
			case 0:
			case 1:
			case 2:	
			case 3:	
			case 4:	
			case 5:printf("E级\n");break;     //将得到的值与1,2,3,4,5比较	
			case 6:printf("D级\n");break;     //将得到的值与6比较
			case 7:printf("C级\n");break;     //将得到的值与7比较
			case 8:printf("B级\n");break;     //将得到的值与8比较 
			case 9:
			case 10:printf("A级\n");break;    //将得到的值与9,10比较 
			default:printf("成绩输入错误!\n");//输入的字符与 1~10都不符合,执行 default后面语句 
		}
	return 0;                                   //返回函数值0 
}                                               //主函数结束(2)运行结果:

  • 实验要求
    用while语句求1+2+3+…+200的平均值
#include
int main()
{
	float i=1.0,sum=0.0;	    //定义变量i的初值为1.0,sum的初值为0.0  
	while(i<=200.0)	    	    //当i>200,条件表达式i<=200的值为假,不执行循环体
	{						    //循环体开始
		sum=sum+i;			    //第1次累加后,sum的值为1
		i++;				    //加完后,i的值加1,为下次累加做准备
	}						    //循环体结束
	printf("sum=%f\n",sum/200);	//输出(1+2+3…+200)/200的值 
	return 0;
}

  • 实验要求
    求1! + 2! + … + 10!(求1~10的阶乘)
#include
int main()
{
	double i,sum=0,s=1.0;       //义变量sum,s的初值分别为0,1.0, 
	for(i=1;i<=10;i++)          //当i<=10时,执行一下循环体 
	{
		s=s*i;                  //计算阶乘 
		sum=sum+s;              //各阶乘相加 
	}
	printf("sum=%lf\n",sum);	//输出sum的值 
	return 0;

  • 实验要求
    输出100~250之间的能被5整除的数
#include 
int main()
{	int n;
	for (n=100;n<=250;n++)  //当n在100至250之间执行以下循环体 
	{	
	if (n%5==0)             //该数是否能被5整除  
		printf("%d ",n);    //输出能被5整除的数 
	}
	printf("\n");           //换行          
	return 0;

  • 实验要求
    判定2000-2500年中的每一年是否为闰年,将结果输出
#include 
int main()
{	int year,leap;
	for (year=2000;year<=2500;year++)     //年份在2000至2500之间则执行以下循环体 
	{		
		if(year%4==0)
	{
		if(year%100==0)
		{
			if(year%400==0)
				leap=1;
			else
				leap=0;
		}
		else
			leap=1;
	}
	else
		leap=0;
	if(leap)
		printf("%d年是闰年   ",year);
	else
			continue;                 //计算每一年终止后再执行 
	}

	return 0;

  • 实验要求
    对10个数组元素依次赋值为1,2,3,4,5,6,7,8,9,10,要求按逆序输出
#include 
int main()
{
	int i,a[10];
	for(i=0; i<=9;i++)	      //对数组元素a[0]~a[9]赋值
		a[i]=i+1;             //相应值的下标 
	for(i=9;i>=0;i--)	      //输出a[9]~a[0]共10个数组元素
		printf("%d ",a[i]);
	printf("\n");
	return 0;
}

  • 实验要求
    用数组求Fibonacci数列的前40个数
#include 
int main()
{
	int i;
	int f[40]={1,1};				//对最前面两个元素f[0]和f[1]赋初值1
	for(i=2;i<40;i++)
		f[i]=f[i-2]+f[i-1];		    //先后求出f[2]~f[39]的值
	for(i=0;i<40;i++)
	{
		 if(i%5==0) printf("\n"); 	//控制每输出5个数后换行
		 printf("%10d",f[i]);		//输出一个数
	}
	printf("\n");
	return 0;
}

  • 实验要求
    输入10个学生的成绩,计算出平均成绩,并将低于平均成绩的分数输出来
#include                 
int main()                        
{                                 
	int i;                        
	float a[10],sum;			                       //定义数组长度及类型 
	for(i=0;i<10;i++)                                  
	{
		printf("请输入第%d个成绩:",i+1);
		scanf("%f",&a[i]);                            //对数组元素a[0]~a[9]赋值(输入10个成绩) 
		sum=sum+a[i];                                 //10成绩的和 
	}
	printf("平均成绩:%f\n",sum/10);                  //输出平均成绩 
	for(i=0;i<10;i++) 
	{
	if(a[i]<(sum/10))                                 //判断低于平均成绩的值 
		{
			printf("低于平均的成绩:%f\n",a[i]);
		} 
	}
	return 0;	
}

  • 实验要求
    已知a[10]={21,12,34,23,54,67,65,13,87,98},从键盘输入一个数,然后在数组a中查找该数,如果找到,输出对应的数组下标,否则,输出“无此数”
#include             
int main()                       
{
	int a[10]={21,12,34,23,54,67,65,13,87,98},i,b,c=0;  //定义变量及数组初始值 
	printf("请输一个你入需要查找的数:");
	scanf("%d",&b);                                     //从键盘输入一个数 
	for(i=0;i<=9;i++)
	{
		if(b==a[i])                                     //判断输入的数是否在数组元素a[0]~a[9]里 
			printf("该数的对应下标为:%d",i);           //输出下标数组元素相应的下标 
		else c+=1;
	}
	if(c==10)
		printf("无此数");                               //没有查到则输出“无此数” 
	return 0;
}

  • 实验要求
    从键盘输入Keep on going never give up,统计其中有多少个单词
#include 
int main()
{
	char str[50];
	int i,num=0,word=0;
	char c;
	printf("请输入一个语句,单词之间用空格!\n"); 
	gets(str);                        //输入一个字符串给字符数组str
	for(i=0;(c=str[i])!='\0';i++)  	  //只要字符不是'\0'就循环
	{
		if(c==' ')                    //若是空格字符,使word置0
		word=0;
		else
		if(word==0)                   //如果不是空格字符且word原值为0
		{
			word=1;
			num++;
		}
	}
	printf("单词个数为%d",num);
return 0;
}

  • 实验要求
    从键盘输入3个单词English,Japanese,Chinese,要求找出其中“最小”者
#include
#include
int main()
{
	char str[3][20];                        //定义二维字符数组
	char string[20];	
                                            //定义字符数组,作为交临时字符数组
	int i;
	printf("请输入3个单词按enter键:\n"); 
	for(i=0;i<3;i++)
		gets(str[i]);	                    //读入3个字符串,分别给str[0],str[1],str[2]
	if(strcmp(str[0],str[1])<0)	                      
		strcpy(string,str[0]);	            //把str[0]的字符串赋给字符数组string
	else						                      
		strcpy(string,str[1]);	            //把str[1]的字符串赋给字符数组string 
	if(strcmp(str[2],string)<0)	                
		strcpy(string,str[2]);	            //把str[2]的字符串赋给字符数组string
	printf("最小的单词:%s\n",string);	  	               
	return 0;
}
  • 实验要求
    输入两个实数,要求输出其中值较小者。要求用函数来找到小数
#include 
int main()
{	float min(int x,int y);	        //对min函数的声明
	float a,b,c;
	printf("请输入2个实数:");       //提示输入数据
	scanf("%f,%f",&a,&b);	        //输入两个整数
	c=min(a,b);	                    //调用min函数
	printf("较小的数为: %f\n",c);	//输出大数c
	return 0; 
}
float min(int x,int y)	            //定义min函数
{
	int z;		                    //定义临时变量z
	z=x<y?x:y;	                    //把x和y中小者赋给z
	return (z);		                //把z作为min函数的值带回main函数
}

  • 实验要求
    求方程ax2+bx+c=0的根,用3个函数分别求当:b2−4ac大于0、等于0和小于0时的根并输出结果。从主函数输入a,b,c的值
#include  
#include  
//自定义函数    
float x1,x2,disc,p,q;
void f1(float a,float b)             //判别式大于0时的两个实数根  
 {
  	x1=(-b+sqrt(disc))/(2*a);
  	x2=(-b-sqrt(disc))/(2*a);
 }	
 void f2(float a,float b)            //判别式等于0时的两个根(相等)    
 {
 	x1=x2=(-b)/(2*a);
 }
 void f3(float a,float b)            //判别式小于0时的两个虚数根
 {
 	p=-b/(2*a);
 	q=sqrt(-disc)/(2*a);
 }
//主函数 
int main() 
{
	float a,b,c;  
    printf("请输入a,b,c的值: \n");   
    scanf("%f,%f,%f",&a,&b,&c); 
    disc=b*b-4*a*c;  
    printf("此方程的根:");
    if(disc>0)   
    {
    	f1(a,b);                      //函数调用 
    	printf("x1=%f\nx2=%f\n",x1,x2);
	}
 	else if(disc==0)   
 	{
 		f2(a,b);
 		printf("x1=%f\nx2=%f\n",x1,x2);
 	}
	else 
 	{
 		f3(a,b);
 		printf("x1=%f+%fi\nx2=%f-%fi\n",p,q,p,q);
 	}
 return 0;  
} 

  • 实验要求
    写一个判素数的函数,在主函数输入一个整数,输出是否为素数的信息
#include
int main()
{
	int prime(int n);                   //函数声明 
	int x;
	printf("输入需要判断的整数:");
	scanf_s("%d", &x);
	prime(x);
	printf("\n");
	return 0;
}

int prime(int n)                        //自定义计算素数的函数 
{
	int i;
	int a = 0;
	if(n<2)
		printf("%d不是素数\n", n);
	else
	{
		for (i = 2; i < n; i++)        //素数只有两个(1及其本身)公因数 
		{
			if (n % i == 0)            //不止一个公因数 
				a++;
		}
		if (a == 0)                   //素数 
			printf("%d是素数\n", n);
		else
			printf("%d不是素数\n", n);
	}
	
	return 0;
}

  • 实验要求
    输入两个整数,分别用函数求它们的和、差、积、商
#include  
#include
int main() 
{  
	int a,b,s1,s2,s3,s4;
	printf("请输入两个整数:");   
	scanf("%d,%d",&a,&b);  
	s1=add(a,b);                      //调用函数 add 
	s2=sub(a,b);                      //调用函数 sub 
	s3=mul(a,b);                      //调用函数 mul
	s4=div(a,b);                      //调用函数 div
	printf("和为:%d\n",s1);
	printf("差为:%d\n",s2); 
	printf("积为:%d\n",s3);  
	printf("商为:%d\n",s4);   
	return 0; 
 }
 
 int add(int x,int y)                 //定义add函数(求和),且参数为整形 
{     
	int z; 
	z=x+y;
	return(z); 
}   

int sub(int x,int y)                  //定义sub函数(求差,且参数为整形 
{  
	int z;  
	z=x-y; 
	return(z);
} 

int mul(int x,int y)                  //定义mul函数(作乘),且参数为整形 
{ 
	int z;   
	z=x*y;
	return(z); 
}

int div(int x,int y)                  //定义div函数(作除),且参数为整形 
{  
	int z;
	z=x/y; 
	return(z); 
}  

  • 实验要求
    输入3个整数,用函数的嵌套调用求出最大值与最小值之差
# include 
int main()
{
	int a,b,c,m1,m2,n;
	int max(int a,int b);                  //函数声明 
	int min(int a,int b);
	printf("请输入3个整数:");
	scanf("%d,%d,%d",&a,&b,&c);
	m1=max(max(a,b),c);                    //函数调用 
	m2=max(min(a,b),c);
	n=(m1-m2);
	printf("最大值与最小值之差:%d",n);
	return 0;
}
int max(int a,int b)                       //求最大值 
{
	int z;
	z=a>b?a:b;
	return (z);	
}
int min(int a,int b)                       //求最小值 
{
	int z;
	z=a<b?a:b;
	return (z);	
}

  • 实验要求
    用递归方法求 的值在这里插入图片描述
# include 
int main()
{
	int faction(int n);                 //函数声明 
	printf("f(10)=%d",faction(10));     //函数嵌套调用
	return 0;
	
}

int faction(int n)
{
	int c;
	if(n==1) c=10;
	else c=faction(n-1)+4;              //递归调用f函数 
	return c;
}

  • 实验要求
    用递归方法求Fibonacci数列的前20个数
#include 
int main()
{
	int i,n=0,b;
	int fibnum(int n);              //函数声明 
	for(i=1;i<=20;i++)
	{
		n++;
		b=fibnum(n);                //函数调用 
		printf("%6d",b);
		if(i%5==0)
		{
			printf("\n");
		 } 
	}
	return 0;	
}
int fibnum(int n)                   //定义求Fibonacci数列的前20个数的函数 fibnum
{
	int b;
	if(n==1||n==2)                  //Fibonacci数列前两个值 
	{
		b=1;
	} 	
	else
		b=fibnum(n-1)+fibnum(n-2);  //函数的递归调用 
	return b;
}

  • 实验要求
    输入10个数,要求输出其中值最小的元素和该数是第几个数
#include 
int main()
{
	int min(int x,int y);            //函数声明 
	
	int a[10],i,j,k;              
	printf("请输入10个数字!\n");
	for(i=0;i<10;i++)               //循环键入10个数 
	{
		scanf("%d",&a[i]);
	}
	
	printf("\n");
	
	for(i=1,j=a[0],k=0;i<10;i++)    //找出最小值 
	{
		if(min(j,a[i])<j)
		{
			j=min(j,a[i]);
			k=i;                   //最小值的序数 
		}
	}
	
	printf("最小的数为:%d\n该数所在位置为:%d",j,k+1); 
	
	return 0;

 } 
 
 int min(int x,int y)             //定义获得最小值的函数 
 {
 	return (x<y?x:y);
 }

  • 实验要求
    给出年、月、日,计算该日是该年的第几天
#include 
int main()
{
    int m[13],year,month,day,i,d,leap;
    for(i=1;i<=12;i++)                                  //给月份赋值
	{
        if(i==1||i==3||i==5||i==7||i==8||i==10||i==12)  //确定31天的月份 
            m[i]=31;
        else if(i!=2)                                   //2月单独 
            m[i]=30;                                    //普通月份 
        else
            m[i]=0;
    }
    scanf("%d",&year,printf("请输入年份:"));            //输入年月日
    scanf("%d",&month,printf("请输入月份:"));
    scanf("%d",&day,printf("请输入天数:")); 
    if(year%4==0)                                       //判断年份是否为闰年(判断2月的天数)
	{
        if(year%100==0)
		{
            if(year%400==0)
                leap=1;
            else
                leap=0;
        }
        else
            leap=1;
    }
    else
        leap=0;
    if(leap)
        m[2]=29;                                       //闰年的2月 
    else
        m[2]=28;                                       //平年2月 
    for(i=1,d=0;i<month;i++)
        d+=m[i];
    d+=day;
    printf("这是%d年的第%d天!\n",year,d);
    return 0;
}

  • 实验要求
    用选择法对数组中15个整数按由大到小排序
#include
int main()
{
  void sort(int array[],int n);
  int a[15],i;
  printf("输入15个整数(用空格隔开):\n");
  for(i=0;i<15;i++)
  scanf("%d",&a[i]);
  sort(a,15);
  printf("排序后:");
  for(i=0;i<15;i++) 
  printf("%5d",a[i]);
  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;
	}
  }  

  • 实验要求
    有一个4×5的矩阵,求所有元素中的最大值和最小值
#include
int main()
{
    int i,j,max,min;
    int num[4][5]={{4,5,6,8,11},
			{45,88,47,62,23},
			{86,23,4,5,8},
			{44,32,12,10,25}};       // 4*5的矩阵 
    for(i=0;i<4;i++)
        for(j = 0; j < 5; j++)
    max=num[0][0];
    for(i=0;i<4;i++)
        for(j=0;j<5;j++)
        {
            if(max<num[i][j])
            max=num[i][j];
        }                            //设置矩阵第一个元素为max初始值,遍历矩阵并比较,得到max 
     min=num[0][0];
     for(i=0;i<4;i++)
        for(j=0;j<5;j++)
        {
            if(min>num[i][j])
            min=num[i][j];
        }                            //设置矩阵第一个元素为min初始值,遍历矩阵并比较,得到min
    printf("max value is %d\n",max);
    printf("The min is:%d\n",min);
    return 0;
}

  • 实验要求
    写一个函数,使给定的一个4×4的二维整型数组转置,即行列互换
#include 
void transpo(int x[4][4]);                                 //定义转置函数
int main()
{
    int a[4][4]={34,58,55,56,12,67,23,45,78,99,12,58,85,56,56,88};
    transpo(a);                                            //调用转置函数
    return 0;
}
//转置函数
void transpo(int x[4][4])
{
    int i,j,k,m[4][4];
    for(i=0;i<4;i++)
        for(j=0;j<4;j++)
            m[j][i]=x[i][j];
    for(i=0;i<4;i++)
        for(j=0,k=1;j<4;j++,k++)
		{
            printf("%d  ",m[i][j]);
            if(k%4==0)
                printf("\n");
        }
}

你可能感兴趣的:(c语言,算法,c++)