c语言程序设计课后习题解答与实验指导

c语言程序设计课后习题解答与实验指导,第1张

#include<stdio.h>

int max(int x,int y,int z)

{

int t

t=x>y?x:y

t=t>z?t:z

return(t)

}

int min(int x ,int y,int z)

{

int t

t=x<y?x:y

t=t<z?t:z

return(t)

}

int aver(int x ,int y,int z)

{

int t

t=(x+y+z)/3

return(t)

}

void main()

{ int x,y,z,a,b,c

scanf("%d,%d,%d",&x,&y,&z)

a=(*max)(x,y,z)

b=(*min)(x,y,z)

c=(*aver)(x,y,z)

printf("%d,%d,%d\n",a,b,c)

}

建议改成:

#include<stdio.h>

int max(int x,int y,int z)

{

int t

t=x>y?x:y

t=t>z?t:z

return(t)

}

int min(int x ,int y,int z)

{

int t

t=x<y?x:y

t=t<z?t:z

return(t)

}

float aver(int x ,int y,int z)

{

int t

t=(float)((x+y+z)/3.0)

return(t)

}

void main()

{ int x,y,z,a,bfloat c

scanf("%d,%d,%d",&x,&y,&z)

a=(*max)(x,y,z)

b=(*min)(x,y,z)

c=(*aver)(x,y,z)

printf("max=%d\nmin=%d\naver=%g\n",a,b,c)

}

1、

#include "stdio.h"

void print(int array[],int length){

int i

clrscr()

for(i=0i<lengthi++)printf("%d ",array[i])

}

main(){

int array[5]={6,8,4,9,5}

print(array,5)

getchar()

}

2、

#include "stdio.h"

double average(int array[],int length){

int i

double total=0,average=0

for(i=0i<lengthi++)

total=total+array[i]

average=total/length

return average

}

main(){

int array[5]={6,8,5},i

clrscr()

printf("The average is %0.8f",average(array,3))

getchar()

}

3、

#include "stdio.h"

int getmax (int array[],int length){

int max=array[0],i

for(i=0i<lengthi++)if(max<array[i])max=array[i]

return max

}

main(){

int array[5]={6,8,4,9,5}

clrscr()

printf("The max is %d",getmax(array,5))

getchar()

}

4、

#include "stdio.h"

int retrieve(int array[],int length,int x){

int i

for(i=0i<lengthi++)if(array[i]==x)break

if(i<length)return i+1/*返回x在该数组中的位置*/

else return -1/*没查找到*/

}

main(){

int array[5]={6,8,4,9,5},x=5

int order = retrieve(array,5,x)

clrscr()

if(order==-1)printf("%d is not in this array!",x)

else printf("The order of %d in this array is %d",x,order)

getchar()

}

5、

#include "stdio.h"

void sort(int array[],int length){/*选择排序法*/

int i,j,max,k,x

for(i=0i<length-1i++){

max=i

for(j=ij<lengthj++)

if(array[max]<array[j])max=j

if(max!=i){k=array[i]array[i]=array[max]array[max]=k}

}

clrscr()

for(i=0i<lengthi++)printf("%d ",array[i])

}

main(){

int array[5]={6,8,4,9,5}

sort(array,5)

getchar()

}

1、求1+2+3+……….+100。(循环)答案#includevoidmain(){inti,sum=0for(i=1ivoidmain(){inta,b,c,dscanf("%d,%d,%d",&a,&b,&c)d=max(a,b,c)printf("max=%d",d)getch()/*暂停看运行结果*/}intmax(intx,inty,intz){intuif(x>=y&&x>=z)u=xelseif(y>=x&&y>=z)u=yelseu=zreturn(u)4.用起泡法对十个数据排序(数组实现)答案#includemain(){inti,j,tstaticinta[10]={5,7,4,2,3,6,1,0,9,8}for(j=0ja[i+1]){t=a[i]a[i]=a[i+1]a[i+1]=t}}}for(i=0imain(){inta[10],i=0for(i=0i=0i--)printf("%f",a[i])}6输入两个数,交换他们的值并输出。(元素交换)答案#includeintmain(){intm,n,tempscanf("%d%d",&m,&n)if(mvoidmain(){inti=1for(ii='a')a[i]=a[i]-32printf("%c",a[i])}printf("\n小写为:")for(i=0i=65&&c=97&&c=48&&c=100&&xvoidmain(){charcwhile((c=getchar())!='\n'){c=c+4if(c>'Z'+4||c>'z')c=c-26}printf("%c",c)}printf("\n")}12,P1115.55.6(switch)5.5#includemain(){intx,yprintf("输入x:")scanf("%d",&x)if(xmain(){floatscorechargradecase2:printf("请输入学生成绩:")scanf("%f",&score)while(score>100||(scorevoidmain(){intyear,leapscanf("%d",&year)if(year%4==0){if(year%100==0){if(year%400==0)leap=1elseleap=0}elseleap=1}elseleap=0if(leap)printf("%dis",year)elseprintf("%disnot",year)printf("aleapyear.\n")}5.614,P31例2.17例2.182.17输出50个学生中成绩高于80分者的学号和成绩2.18输出2000——2500年每一年是否闰年#includevoidmain(){intyearyear=2000go:if(((year%4==0)&&(year%100!=0))||(year%400==0))printf("%disrunnian",year)if(year2500)gotoendgotogoend:getch()}希望对你有所帮助


欢迎分享,转载请注明来源:内存溢出

原文地址:https://54852.com/yw/11515448.html

(0)
打赏 微信扫一扫微信扫一扫 支付宝扫一扫支付宝扫一扫
上一篇 2023-05-16
下一篇2023-05-16

发表评论

登录后才能评论

评论列表(0条)

    保存