栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > C/C++/C#

C语言程序设计(谭浩强第五版)——习题

C/C++/C# 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

C语言程序设计(谭浩强第五版)——习题

C语言程序设计(谭浩强第五版)——习题
  • 第3章 最简单的C程序设计——顺序程序设计
  • 第4章 选择结构程序设计
  • 第5章 循环结构程序设计
  • 第6章 利用数组处理批量数据

第3章 最简单的C程序设计——顺序程序设计
  1. 购房从银行贷了一笔款d,准备每月还款额为p,月利率为r,计算多少月能还清。
    设d为300 000元,p为6000元,r为1%。
    对求得的月份取小数点后一位,对第 2位小数按四舍五入处理。
 
 

#include 
#include
int main()
{
	float d=300000,p=6000,r=0.01,m;
	m=log10(p/(p-d*r))/log10(1+r);
	printf("m=%6.1fn",m);
	return 0;
}
  1. 请编程序将 China 译成密码,密码规律是;
    用原来的字母后面第 4个字母代替原来的字母。
 

#include 
int main()
{
	char c1='C',c2='h',c3='i',c4='n',c5='a';
	c1=c1+4;
	c2=c2+4;
	c3=c3+4;
	c4=c4+4;
	c5=c5+4;
	printf("password is %c%c%c%c%cn",c1,c2,c3,c4,c5) ;
	return 0;
}
  1. 设圆半径r=1.5,圆柱高 h=3,求圆周长、圆面积、圆球表面积、圆球体积、圆柱体积。
    用 scanf输入数据,输出计算结果,输出时要求有文字说明,取小数点后 2位数字。
 

#include 
int main()
{
	float h,r,l,s,sq,vq,vz;
	float pi=3.141526;
	printf("请输入圆半径r,圆柱高h:");
	scanf("%f,%f",&r,&h);
	l=2*pi*r;
	s=r*r*pi;
	sq=4*pi*r*r;
	vq=3.0/4.0*pi*r*r*r;
	vz=pi*r*r*h;
	printf("圆周长为:			l=%6.2fn",l);
	printf("圆面积为:			s=%6.2fn",s);
	printf("圆球表面积为:			sq=%6.2fn",sq);
	printf("圆球体积为:			vq=%6.2fn",vq);
	printf("圆柱体积为:			vz=%6.2fn",vz);
}
  1. 编程序,用getchar函数读入两个字符给cl和c2,然后分别用putchar函数和printf 函数输出这两个字符。

#include
int main()
{
	char c1,c2;
	printf("请输入两个字符c1,c2:");
	c1=getchar();
	c2=getchar();
	printf("用putchar语句输出结果为:");
	putchar(c1);
	putchar(c2);
	printf("n");
	printf("用printf语句输出结果为:");
	printf("%c %cn",c1,c2);
	return 0;
}

8(1).

#include
int main()
{
	int c1,c2;
	printf("请输入两个整数c1,c2:");
	scanf("%d,%d",&c1,&c2);
	printf("按字符输出结果:n");
	printf("%c,%cn",c1,c2);
	printf("按ASCII码输出结果为:n");
	printf("%d,%dn",c1,c2);
	return 0;
}

8(2).

#include
int main()
{
	char c1,c2;
	int i1,i2;
	printf("请输入两个字符c1,c2:");
	scanf("%c,%c",&c1,&c2);
	i1=c1;
	i2=c2;
	printf("按字符输出结果:n");
	printf("%c,%cn",i1,i2);
	printf("按整数输出结果:n");
	printf("%d,%dn",i1,i2);
	return 0;
}

8(3).

#include
int main()
{
	char c1,c2;
	int i1,i2;
	printf("请输入两个字符i1,i2:");
	scanf("%d,%d",&i1,&i2);
	c1=i1;
	c2=i2;
	printf("按字符输出结果:n");
	printf("%c,%cn",c1,c2);
	printf("按整数输出结果:n");
	printf("%d,%dn",c1,c2);
	return 0;
}
第4章 选择结构程序设计
  1. 有3个整数a,b,c,由键盘输入,输出其中最大的数。

#include
int main()
{
	int a,b,c;
	printf("请输入3个整数:");
	scanf("%d,%d,%d",&a,&b,&c);
	if(a 

4(1).

// 使用条件表达式

#include
int main()
{
	int a,b,c,temp,max;
	printf("请输入3个整数:");
	scanf("%d,%d,%d,",&a,&b,&c);
	temp=(a>b)?a:b;
	max=(temp>c)?temp:c;
	printf("max=%dn",max);
	return 0;
}
  1. 从键盘输入一个小于1000的正数,要求输出它的平方根(如平方根不是整数,则输出其整数部分)。
    要求在输入数据后先对其进行检查是否为小于1000的正数。若不是,则要求重新输入。

#include
#include
#define M 1000
int main()
{
	int i,k;
	printf("请输入一个小于%d的整数i:",M);
	scanf("%d",&i);
	if(i>M)
	{
		printf("输入的数据不符合要求,请重新输入。");
		scanf("%d",&i) ;
	}
	k=sqrt(i);
	printf("%d的平方根的整数部分是%dn",i,k);
}

5(1).

// 加入while可以多次检查 

#include
#include
#define M 1000
int main()
{
	int i,k;
	printf("请输入一个小于%d的整数i:",M);
	scanf("%d",&i);
	while(i>M)
	{
		printf("输入的数据不符合要求,请重新输入一个小于%d的整数i:",M);
		scanf("%d",&i) ;
	}
	k=sqrt(i);
	printf("%d的平方根的整数部分是%dn",i,k);
}
  1. 有一个函数∶
    y=x(x<1)
    y=2x-1 (1≤x<10)
    y=3x-11(x≥10)
    写程序,输入x的值,输出y相应的值。

#include
int main()
{
	int x,y;
	printf("输入x:");
	scanf("%d",&x);
	if(x<1)
	{
		y=x;
		printf("x=%3d,	y=x=%dn",x,y);
	}
	else if(x<10)
	{
		y=2*x-1;
		printf("x=%3d,	y=2*x-1=%dn",x,y);
	}
	else
	{
		y=3*x-11;
		printf("x=%3d,	y=3*x-11=%dn",x,y);	
	}
	return 0;
}
  1. 给出一百分制成绩,要求输出成绩等级’A’、‘B’、‘C’、‘D’、‘E’。
    90分以上为’A’,80~89分为’B’,70~70分为’C’,60~69分为’D’,60分以下为’E’。
 

#include 
int main()
{
	float score;
	char grade;
	printf("请输入学生成绩:");
	scanf("%f",&score);
	while(score>100|score<0)
	{
		printf("n输入有误,请重输");
		scanf("%f",&score);
	}
	switch((int)(score/10))
	{
		case 10:
		case 9: grade='A';break;
		case 8: grade='B';break;
		case 7: grade='C';break;
		case 6: grade='D';break;
		case 5:
		case 4:
		case 3:
		case 2:
		case 1:
		case 0:	grade='E';
	}
	printf("成绩是%5.1f,相应的等级是%cn",score,grade);
	return 0;
}
  1. 给一个不多于5位的正整数,要求∶
    ①求出它是几位数;
    ②分别输出每一位数字;
    ③按逆序输出各位数字,例如原数为321,应输出123。

#include
#include
int main()
{
	int num,indiv,ten,hundred,thousand,ten_thousand,place; // 分别代表个位、十位、百位、千位、万位和位数
	printf("请输入一个整数(0~99999):") ;
	scanf("%d",&num);
	if(num>9999)
		place=5;
	else if(num>999)
		place=4;
	else if(num>99)
		place=3;
	else if(num>9)
		place=2;
	else place=1;
	printf("位数:%dn",place);
	printf("每位数字为:");
	ten_thousand=num/10000;
	thousand=(int)(num-ten_thousand*10000)/1000;
	hundred=(int)(num-ten_thousand*10000-thousand*1000)/100;
	ten=(int)(num-ten_thousand*10000-thousand*1000-hundred*100)/10;
	indiv=(int)(num-ten_thousand*10000-thousand*1000-hundred*100-ten*10);
	switch(place)
	{
		case 5: 
				printf("%d,%d,%d,%d,%d",ten_thousand,thousand,hundred,ten,indiv);
			 	printf("n反序数字为:");
			 	printf("%d,%d,%d,%d,%d",indiv,ten,hundred,thousand,ten_thousand);
			 	break;
		case 4: 
				printf("%d,%d,%d,%d",thousand,hundred,ten,indiv);
			 	printf("n反序数字为:");
			 	printf("%d,%d,%d,%d",indiv,ten,hundred,thousand);
			 	break;
		case 3: 
				printf("%d,%d,%d",hundred,ten,indiv);
			 	printf("n反序数字为:");
			 	printf("%d,%d,%d",indiv,ten,hundred);
			 	break;
		case 2: 
				printf("%d,%d",ten,indiv);
			 	printf("n反序数字为:");
			 	printf("%d,%d",indiv,ten);
			 	break;
		case 1: 
				printf("%d",indiv);
			 	printf("n反序数字为:");
			 	printf("%d",indiv);	 	
				break;
	}
	return 0;
}
  1. 企业发放的奖金根据利润提成。
    利润I低于或等于100 000元的,奖金可提成10%;
    利润高于100 000元,低于200 000元(100 000 高于100 000元的部分,可提成7.5%;200 000 高于 200 000元的部分按5%提成;
    400 000 600 000 I>100000时,超过1000 000元的部分按1%提成。
    从键盘输入当月利润I,求应发奖金总数。
    要求∶
    (1)用if语句编程序。(2)用switch语句编程序。

#include 
int main()
{
	int i;
	double bonus,bon1,bon2,bon4,bon6,bon10;
	bon1=100000*0.1;
	bon2=bon1+100000*0.075;
	bon4=bon2+100000*0.05;
	bon6=bon4+100000*0.03;
	bon10=bon6+400000*0.015;
	printf("请输入利润i:");
	scanf("%d",&i);
	if(i<=100000)
		bonus=i*0.1;
	else if(i<=200000)
		bonus=bon1+(i-100000)*0.0075;
	else if(i<=400000)
		bonus=bon2+(i-200000)*0.05;
	else if(i<=1000000)
		bonus=bon4+(i-400000)*0.03;
	else if(i<=1000000)
		bonus=bon6+(i-600000)*0.015;
	else
		bonus=bon10+(i-1000000)	*0.01;
	printf("奖金是:%10.2fn",bonus);
	return 0;
}

10(2) 用switch语句编程序。

#include 
int main()
{
	int i;
	double bonus,bon1,bon2,bon4,bon6,bon10;
	int branch;
	bon1=100000*0.1;
	bon2=bon1+100000*0.075;
	bon4=bon2+200000*0.05;
	bon6=bon4+200000*0.03;
	bon10=bon6+400000*0.015;
	printf("请输入利润i:");
	scanf("%d",&i);
	branch=i/100000;
	if(branch>10)branch=10;
	switch(branch)
	{
		case 0:
			bonus=i*0.1;
			break;
		case 1:
			bonus=bon1+(i-100000)*0.075;
			break;
		case 2:
		case 3:
			bonus=bon2+(i-200000)*0.05;
			break;
		case 4:
		case 5:
			bonus=bon4+(i-400000)*0.03;
			break;
		case 6:
		case 7:
		case 8:
		case 9:
			bonus=bon6+(i-600000)*0.015;
			break;
		case 10:
			bonus=bon10+(i-1000000)	*0.01;
	}	
	printf("奖金是:%10.2fn",bonus);
	return 0;
}
  1. 输入 4个整数,要求按由小到大的顺序输出。
// 输入 4个整数,要求按由小到大的顺序输出。

#include
int main()
{
	int t,a,b,c,d;
	printf("请输入4个数:");
	scanf("%d,%d,%d,%d",&a,&b,&c,&d);
	printf("a=%d,b=%d,c=%d,d=%dn",a,b,c,d);
	if(a>b)
		{t=a;a=b;b=t;
		}
	if(a>c)
	{
		t=a;a=c;c=t;
	}
	if(a>d)
	{
		t=a;a=d;d=t;
	} 
	if(b>c)
	{
		t=b;b=c;c=t;
	}
	if(b>d)
	{
		t=b;b=d;d=t;
	}
	if(c>d)
	{
		t=c;c=d;d=t;
	}
	printf("排序顺序如下:n");
	printf("%d	%d	%d	%d	n",a,b,c,d);
	return 0;
}
  1. 有4个圆塔,圆心分别为(2,2)、(一2,2)、(一2.—2)、(2,—2),圆半径为1 。
    这 4个塔的高度为10m,塔以外无建筑物。今输入任一点的坐标,求该点的建筑高度(塔外的高度为零)。

#include 
int main()
{
	int h=10;
	float x1=2,y1=2,x2=-2,y2=2,x3=-2,y3=-2,x4=2,y4=-2,x,y,d1,d2,d3,d4;
	printf("请输入一个点(x,y):");
	scanf("%f,%f",&x,&y);
	d1=(x-x4)*(x-x4)+(y-y4)*(y-y4); // 求该点到各中心点距离
	d2=(x-x1)*(x-x1)+(y-y1)*(y-y1); 
	d3=(x-x2)*(x-x2)+(y-y2)*(y-y2);
	d4=(x-x3)*(x-x3)+(y-y3)*(y-y3);
	if(d1>1&&d2>1&&d3>1&&d4>1)h=0;
	printf("该点高度为%dn",h);
	return 0;
}
第5章 循环结构程序设计
  1. 输入两个正整数m和n,求其最大公约数和最小公倍数。
// 输入两个正整数m和n,求其最大公约数和最小公倍数。

#include
int main()
{
	int p,r,n,m,temp;
	printf("请输入两个正整数n,m:");
	scanf("%d,%d",&n,&m);
	if(n
		temp=n;
		n=m;
		m=temp;
	}
	p=n*m;
	while(m!=0) 
	{
		r=n%m;
		n=m;
		m=r;
	}
	printf("它们的最大公约数为:%dn",n);
	printf("它们的最小公倍数为:%dn",p/n);
	return 0;
}
  1. 输入一行字符,分别统计出其中英文字母、空格、数字和其他字符的个数。
// 输入一行字符,分别统计出其中英文字母、空格、数字和其他字符的个数。

#include
int main()
{
	char c;
	int letters=0,space=0,digit=0,other=0;
	printf("请输入一行字符:n");
	while((c=getchar())!='n')
	{
		if(c>='a'&&c<='z'||c>='A'&&c<='Z')
			letters++;
		else if(c==' ')
			space++;
		else if(c>='0'&&c<='9')
			digit++;
		else 
			other++;
	}
	printf("字母数:%dn空格数:%dn数字数:%dn其他字符数:%dn",letters,space,digit,other);
	return 0;
}
  1. 求S,=a+aa+aaa+…+aa…a(n个a)之值,其中a是一个数字,n表示a的位数,n由键盘输入,
    例如∶2+22+222+2222+22222(此时n=5)

#include
int main()
{
	int a,n,i=1,sn=0,tn=0;
	printf("a,n=:");
	scanf("%d,%d",&a,&n);
		while(i<=n)
		{
			tn=tn+a; // 赋值后的tn为i个a组成数的值
			sn=sn+tn;// 赋值后的sn为多项式前i想之和 
			a=a*10;
			++i;
		 } 
		 printf("a+aa+aaa+...=%dn",sn);
		 return 0;
}
  1. 求 ∑ n = 1 20 n ! sum_{n=1}^{20} n! ∑n=120​n!(即求1!+2!+3!+4!+…+20!) 。
// 求sum_{n=1}^{20} n!(即求1!+2!+3!+4!+...+20!) 。

#include 
int main()
{
	double s=0,t=1;
	int n;
	for(n=1;n<=20;n++)
	{
		t=t*n;
		s=s+t;
	}
	printf("1!+2!+3!+4!+...+20!=%22.15en",s);
	return 0;
}
  1. 求 ∑ k = 1 100 k + ∑ k = 1 50 k 2 + ∑ k = 1 10 1 k sum_{k=1}^{100}k+ sum_{k=1}^{50}k^2+sum_{k=1}^{10}frac{1}{k} ∑k=1100​k+∑k=150​k2+∑k=110​k1​。
// 求sum_{k=1}^{100}k+ sum_{k=1}^{50}k^2+sum_{k=1}^{10}frac{1}{k}。

#include 
int main()
{
	int n1=100,n2=50,n3=10;
	double k,s1=0,s2=0,s3=0;
	for(k=1;k<=n1;k++)		// 计算1~100的和 
	{
		s1=s1+k;
	}
	for(k=1;k<=n2;k++)		// 计算1~50个数的平方和 
	{
		s2=s2+k*k;
	}
	for(k=1;k<=n3;k++)		// 计算1~10的各倒数和 
	{
		s3=s3+1/k;
	}
	printf("sum=%15.6fn",s1+s2+s3);
	return 0;
}
  1. 输出所有的"水仙花数"。所谓"水仙花数"是指一个3位数,其各位数字立方和等于该数本身。
    例如,153 是一水仙花数,因为 153 = 1 3 + 5 3 + 3 3 153=1^3+5^3+3^3 153=13+53+33。

#include
int main()
{
	int i,j,k,n;
	printf("parcissus numbers are ");
	for(n=100;n<1000;n++)
	{
		i=n/100;
		j=n/10-i*10;
		k=n%10;
		if(n==i*i*i+j*j*j+k*k*k)
			printf("%d ",n);
	}
	printf("n");
	return 0;
}
  1. 一个数如果恰好等于它的因子之和,这个数就称为"完数"。
    例如,6的因子为1,2,3,而6=1十2十3,因此6是"完数"。
    编程序找出1000之内的所有完数,并按下面格式输出其因子∶
    6 its factors are 1 2 3

#include 
int main()
{
	int s,i,m;
	for(m=2;m<1000;m++)
	{
		s=0;
		for(i=1;i
			if((m%i)==0)
				s=s+i;
		}
		if(s==m)
		{
			printf("%d,its factors are ",m)	;
			for(i=1;i 
  1. 有一个分数序列∶ 2 1 , 3 2 , 5 3 , 8 5 , 13 8 , 21 13 , . . . frac{2}{1},frac{3}{2},frac{5}{3},frac{8}{5},frac{13}{8},frac{21}{13},... 12​,23​,35​,58​,813​,1321​,...
    求出这个数列的前20项之和。
 

#include
int main()
{
	int i,n=20;
	double a=2,b=1,s=0,t;
	for(i=1;i<=20;i++)
	{
		s=s+a/b;
		t=a;
		a=a+b;
		b=t;
	}
	printf("sum=%16.10fn",s);
	return 0;
}
  1. 一个球从100m高度自由落下,每次落地后反跳回原高度的一半,再落下,再反弹。
    求它在第 10次落地时,共经过多少米,第10次反弹多高。

#include
int main()
{
	double sn=100,hn=sn/2;
	int n;
	for(n=2;n<=10;n++)
	{
		sn=sn+2*hn;		//第n次落地时共经过的米数 
		hn=hn/2;		//第n次反跳高度 
	}
	printf("第10次落地时共经过%f米n",sn);
	printf("第10次反弹%f米n",hn);
	return 0;
}
  1. 猴子吃桃问题。猴子第1天摘下若干个桃子,当即吃了一半,还不过瘾,又多吃了一个。第2天早上又将剩下的桃子吃掉一半,又多吃了一个。以后每天早上都吃了前一天剩下的一半零一个。到第10天早上想再吃时,就只剩一个桃子了。求第1天共摘了多少个桃子。

#include
int main()
{
	int day,x1,x2;
	day=9;
	x2=1;
	while(day>0)
	{
		x1=(x2+1)*2;	// 第1天的桃子数时第2天桃子数加1后的2倍 
		x2=x1;
		day--;
	}
	printf("total=%dn",x1);
	return 0;
}
  1. 用迭代法求 x = a x=sqrt a x=a ​。求平方根的迭代公式为
    x n + 1 = 1 2 ( x n + a x n ) x_{n+1}=frac{1}{2}(x_n+frac{a}{x_n}) xn+1​=21​(xn​+xn​a​)
    要求前后两次求出的x的差的绝对值小于 1 0 − 5 10^{-5} 10−5。


#include
#include 
int main()
{
	float a,x0,x1;
	printf("enter a positive number:");
	scanf("%f",&a);
	x0=a/2;
	x1=(x0+a/x0)/2;
	do
	{
		x0=x1;
		x1=(x0+a/x0)/2;
	}while(fabs(x0-x1)>=1e-5);
	printf("The square root of %5.2f is %8.5fn",a,x1);
	return 0;
}

14.用牛顿迭代法求下面方程在1.5附近的根∶
2 ∗ x 3 − 4 ∗ x 2 + 3 ∗ x − 6 = 0 2*x^3-4*x^2+3*x-6=0 2∗x3−4∗x2+3∗x−6=0。



#include
#include
int main()
{
	double x1,x0,f,f1;
	x1=1.5;
	do
	{
		x0=x1;
		f=((2*x0-4)*x0+3)*x0-6;
		f1=(6*x0-8)*x0+3;
		x1=x0-f/f1;
	}while(fabs(x1-x0)>=1e-5);
	printf("The root of equation is %5.2fn",x1);
	return 0;
}
  1. 用二分法求下面方程在(-10,10)之间的根∶
    2 ∗ x 3 − 4 ∗ x 2 + 3 ∗ x − 6 = 0 2*x^3-4*x^2+3*x-6=0 2∗x3−4∗x2+3∗x−6=0。


#include
#include
int main()
{
	float x0,x1,x2,fx0,fx1,fx2;
	do
	{
		printf("enter x1 & x2:");
		scanf("%f,%f",&x1,&x2);
		fx1=x1*((2*x1-4)*x1+3)-6;
		fx2=x2*((2*x2-4)*x2+3)-6;
	}while(fx1*fx2>0);
	do
	{
		x0=(x1+x2)/2;
		fx0=x0*((2*x0-4)*x0+3)-6;
		if((fx0*fx1)<0)
		{
			x2=x0;
			fx2=fx0;
		}
		else
		{
			x1=x0;
			fx1=fx0;
		}
	}while(fabs(fx0)>=1e-5);
	printf("x=%6.2fn",x0);
	return 0;
}
  1. 输出以下图案∶

#include
int main()
{
	int i,j,k;
	for(i=0;i<=3;i++)
	{
		for(j=0;j<=2-i;j++)
		{
			printf(" ");
		 } 
		for(k=0;k<=2*i;k++)
			printf("*");
		printf("n");
	}
	for(i=0;i<=2;i++)
	{
		for(j=0;j<=i;j++)	
			printf(" ");
		for(k=0;k<=4-2*i;k++)
			printf("*");
		printf("n");
	}
	return 0;
}
  1. 两个乒乓球队进行比赛,各出3人。甲队为A,B,C3人,乙队为X,Y,Z3人。
    已抽签决定比赛名单。
    有人向队员打听比赛的名单,A说他不和X比,C说他不和X,Z比,请编程序找出3对赛手的名单。

#include
int main()
{
	char i,j,k; // i是a的对手,j是b的对手,k是c的对手
	for(i='x';i<='z';i++) 
	{
		for(j='x';j<='z';j++)
		{
			if(i!=j)
				for(k='x';k<='z';k++)
				{
					if(i!=k&&j!=k)
						if(i!='x'&&k!='x'&&k!='z')
						{
							printf("A--%cnB--%cnC--%cn",i,j,k);
							return 0; 
						}

				}
		}
	}
	return 0;
}
第6章 利用数组处理批量数据
  1. 用筛选法求 100 之内的素数。
// 用筛选法求 100 之内的素数。
 
 

#include
#include
int main()
{
	int i,j,n,a[101];
	for(int i=1;i<=100;i++)
	{
		a[i]=i;
	}
	a[1]=0;
	for(i=2;i
		for(j=i+1;j<=100;j++)
		{
			if(a[i]!=0&&a[j]!=0)
			{
				if(a[j]%a[i]==0)
				{
					a[j]=0;     //挖掉非素数 
				}
			}
		}
	}
	printf("n");
	for(i=2,n=0;i<=100;i++)
	{
		if(a[i]!=0) 
		{
			printf("%5d",a[i]);
			n++;
		}
		if(n==10)
		{
			printf("n");
			n=0;
		}
	}
	printf("n");
	return 0;
}
  1. 用选择法对 10个整数排序。
// 用选择法对 10个整数排序。



#include
int main()
{
	int i,j,min,temp,a[11];
	printf("enter data:n");
	for(i=1;i<=10;i++)
	{
		printf("a[%d]=",i);
		scanf("%d",&a[i]);
	}
	printf("n");
	printf("The orignal numbers:n");
	for(i=1;i<=10;i++)
	{
		printf("%5d",a[i]);
	}
	printf("n");
	for(i=1;i<=9;i++)
	{
		min=i;
		for(j=i+1;j<=10;j++)
		{
			if(a[min]>a[j])
			{
				min=j;
			}
		}
		temp=a[i];
		a[i]=a[min];
		a[min]=temp;
	}
	printf("nThe sorted numbers:n");
	for(i=1;i<=10;i++)
	{
		printf("%5d",a[i]);
	}
	printf("n");
	return 0;
}
  1. 求一个3×3的整型矩阵对角线元素之和。
// 求一个3×3的整型矩阵对角线元素之和。

#include 
int main()
{
	int a[3][3],sum=0;
	int i,j;
	printf("enter data:n");
	for(i=0;i<3;i++)
	{
		for(j=0;j<3;j++)
		{
			scanf("%3d",&a[i][j]);
		}
	}
	for(i=0;i<3;i++)
	{
		sum=sum+a[i][i];
	}
	printf("sum=%6dn",sum);
	return 0;
}
  1. 有一个已排好序的数组,要求输入一个数后,按原来排序的规律将它插入数组中。
// 有一个已排好序的数组,要求输入一个数后,按原来排序的规律将它插入数组中。


#include
int main()
{
	int a[11]={1,4,6,9,13,16,19,28,40,100};
	int temp1,temp2,number,end,i,j;
	printf("array a:n");
	for(i=0;i<10;i++)
	{
		printf("%5d",a[i]);
	}
	printf("n");
	printf("insert data:");
	scanf("%d",&number);
	end=a[9];
	if(number>a[9])
	{
		a[10]=number;
	}
	else
	{
		for(i=0;i<10;i++)
		{
			if(a[i]>number)
			{
				temp1=a[i];
				a[i]=number;
				for(j=i+1;j<11;j++)
				{
					temp2=a[j];
					a[j]=temp1;
					temp1=temp2;
				}
				break;
			}
		}
	}
	printf("New array a:n");
	for(i=0;i<11;i++)
	{
		printf("%5d",a[i]);
	}
	printf("n");
	return 0;
}
转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/989826.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号