【项目1:位乘大于位和】
下面程序的功能是输出1至100之间每位数的乘积大于每位数的和的数,请将空白处缺少的成份补齐。
解法:#include <stdio.h>
#include <stdlib.h>
int main()
{
int iSdigit=0,iTdigit=0,m=0;
while(m<=100)
{
iSdigit=m%10;
iTdigit=m/10;
if(iSdigit > 0)
{
if((iSdigit*iTdigit)>(iSdigit+iTdigit))
printf("%d ",m);
}
++m;
}
return 0;
}
【项目2:乘法口诀表】
编程序,输出一个乘法口诀表,形如
解法:
#include <stdio.h>
#include <stdlib.h>
int main()
{
int i=1,j=1,m=0;
printf("my multiplication table is:\n");
for (i=1;i<=9;++i)
{
for(j=1;j<=i;++j)
{
m=i*j;
printf("%d*%d=%d ",i,j,m);
}
printf("\n");
}
return 0;
}
【项目3:单位转换对照表】
编程序生成一张从英尺到米的转换表(1米大约等于3.28英尺),以方便工厂里工人师傅使用。输出形式如下图所示,罗列了从0英尺到99英尺对应的米数,即第i行第j列的值vij代表i*10+j英尺对应的米数。例如,通过下图所示,我们可以方便地查到17英尺相当于5.18米。只输出内容即可,不用考虑表格线。
提示:每输出10英尺的转换表后,另起一行输出。为使输出美观,可以在各项中间用’\t’分隔。
解法:#include <stdio.h>
#include <stdlib.h>
int main()
{
int i,j;
int iInch=0;
double dMeter=0;
double drate=1.0/3.28;
printf("Inch2Meter ");
for (i=0;i<=9;++i)
printf("%5d",i);
printf("\n");
for(i=0;i<=9;++i)
{
printf("%10d ",i);
for(j=0;j<=9;++j)
{
iInch=10*i+j;
dMeter=iInch*drate;
printf("%5.2lf ",dMeter);
}
printf("\n");
}
return 0;
}
【项目4:大奖赛计分】
(1)基本要求:在歌手大奖赛中,有10个评委为参赛的选手打分,分数为1~10分。选手最后得分为:去掉一个最高分和一个最低分后其余8个分数的平均值。请编写一个程序实现。
(2)上面的程序只能处理一位选手的成绩,现拓展为多人版。输出当前选手的最后得分后,提示“按任意键计算下一位选手的成绩,退出请选择N:”如果输入的不是N或n,可以为下一位选手计算成绩。
解法:#include <stdio.h>
#include <stdlib.h>
int main()
{
int iJudge=0;//选手和评委的数目
double dScore,dAvera;//选手的分数以及平均分
double dMax=0,dMin=11,dSum=0;
char ch;
//printf("please enter the score of the present singer(0-10):\n");
do
{
printf("please enter the score of the present singer(0-10):\n");
for(iJudge=1;iJudge<=10;++iJudge)
{
scanf("%lf",&dScore);
dSum += dScore;
if(dMax<dScore)
dMax=dScore;
else if(dMin>dScore)
dMin=dScore;
}
dAvera=(dSum-dMin-dMax)/8;
printf("the final score of this singer is:%.2lf\n",dAvera);
dAvera=0;
dSum=0;
printf("if you want to continue,please enter 'n' or 'N'\n");
fflush(stdin);
}
while((ch=getchar())=='n'||(ch=getchar())=='N');
return 0;
}