回复:跪求各位解题C++的
大作业-答案
题目1 (分支)
根据键盘输入的年号和月号,输出该年该月总天数。
main()
{ int year , month ;
scanf(“%d,%d”,&year,&month);
switch (month)
{ case 1:
case 3:
case 5:
case 7:
case 8:
case 10:
case 12: printf(“day=31”, ); break;
case 4:
case 6:
case 9:
case 11: printf(“day=30”); break;
case 2:
if ((year%4 ==0 && year %100!=0) || (year%400==0))
{printf(“day=29”);}
else
{printf(“day=28”);}
break;
default: printf(“Month is wrong!!”);
}
}
题目2:(循环――while 、do-while、 for )
某人第一天买了2个苹果,从第二天开始,每天买的苹果都是前一天的2倍,直到购买的苹果个数不超过100为止,计算需要多少天。
main()
{ int sum, today, days;
today=2;
sum=today;
days=0; // days=1; error
while(sum<=100)
{ days++;
today=2*today;
sum=sum+today;
}
printf(“%d”,days);
}
题目3: (循环――2重)
一个3*4的矩阵,编程序求出其中最大、最小的元素值,并记录所在行号与列号。
main()
{int i,j,row1=0,colum1=0,row2=0,colum2=0,max,min;
int a[3][4]={{1,2,3,4},{9,8,7,6},{-10,10,-5,2}};
max=a[0][0]; min[0][0]= a[0][0];
for (i=0; i<3; i++)
{ for (j=0; i<4; j++)
{ if (max<a[i][j]){max=a[i][j];row1=i;colum1=j;}
if (min>a[i][j]){min=a[i][j];row2=i; colum2=j;}
}
printf(“%d,%d,%d/n”,max,row1, colum1);
printf(“%d,%d,%d/n”, min,row2,colum2);
}
}
题目4:(函数、数组、指针)
大奖赛10个评委亮分,去掉一个最高分,去掉一个最低分,输出最后得分(平均分)。
void f1(double x[])
{ int i;
for (i=0;i<10,++i)
{scanf(“%f ”,x+i);}
}
void f2 (double *x)
{ int i, p1,p2; double max, min, aver;
max=x[0]; min=x[0]; p1=0; p2=0; aver=0;
for (i=0;i<10;i++)
{ if (max<x[i] )
{max=x[i]; p1=i;}
if (min>x[i])
{min=a[i]; p2=i;}
}
x[p1]=0; x[p2]=0;
for (i=0; i<10; i++)
{ aver=aver+x[i]; }
aver=aver/10;
printf(“%f”,aver);
}
main()
{ double score[10];
f1(score);
f2(score);
}
题目5: (函数、数组、指针)
求N个数(double型)的最大值、最小值,并在主函数中显示。
#define N 3;
main()
{ double a[N],max=0, min=0;
f1(a,N);
f2(a, N, &max, &min);
printf(“Max=%f, Min=%f”,max, min);
}
void f1( double x[], int n)
{ int i;
for (i=0; i<n; i++)
{ scanf(“%f”,&x[i]); }
}
void f2 (double x[], int n, double * p1, double * p2)
{ int i; double max, min;
max=x[0]; min=x[0];
for ( i=0; i<n; i++)
{ if (max<x[i]) {max=x[i];} if (min>x[i]) {min=x[i];}
}
*p1=max; *p2=min;
}
N个数由大到小顺序排序:选择法(另一方法) 教材P241
void sort (int x[], int n)
{ int i,j,k,t;
for (i=0; i<n-1; i++)
{ k=i;
for (j=i+1;j<n; j++)
if (x[j]>x[k]) k=j;
if (k!=i){t=x[i];x[i]=x[k];x[k]=t;}
}
}
作者:
218.62.99.*
回复投诉 删除
2009-7-4 07:37