405程序考核1解题报告

405程序考核1-by midsummer223




A:A除以B

考察在字符串中的遍历,数据的迭代。

    ...
    int i,j=0,m,n=0,b;//i用于数组a的迭代,j用于s的迭代.m,n分别对应每一次计算的商和余数,b记录除数。
    char a[1005],s[1001];//因为大数运算 ,所以用字符保存。
    ...
    for(i=0;a[i]!='\n';i++)
    {
    m=(a[i]-'0')+n*10;//从最高位开始依次计算
    if(m>=b)
    {
        s[j++]='0'+m/b;
        n=m%b;
    }
    else
    {
        s[j++]='0';
        n=m;
    }
        if(s[0]=='0') j--;//清除首位的‘0’
    }
    ...


B:统计1到N之间数字1的个数

主要考察数据分解和统计(以后单片机中使用最频繁的)

这题的难点在思路上,只有想到把每次的每个数分解再统计,还是不难解的

int n,i,count;
int a,b,c,d;
...
for(i=1;i<=n;i++)
{
    a=i%10;
    b=i/10%10;
    c=i/100%10;
	d=i/1000;
	if(a==1)
	count++;
	if(b==1)
	count++;
	if(c==1)
	count++;
	if(d==1)
	count++;			
}
...

C:C语言实验题――求平均值

太简单不写了 

D:求绝对值最大值

简单  有人没对贴一下核心代码

for(i=1;i<=n;i++)
{
scanf("%d",&a);
if(fabs(a)>fabs(b))b=a;
}

E:并列排名

考察判断语句(对并列排名的理解)

即大于其数量的人数为排名

for(j=0;j<n;j++)
{
	if(a[j]>m)//m为当前分数,a为全部
	rank++;
}

F:(A+B) mod 3

考察数据统计,数组遍历

计算所有数的和 ,再除以3

char a[1000],b[1000];
int sum=0,x,y,i;//x,y分别为字符串大小。
...
for(i=0;i<x;i++)
{
    sum+=a[i]-'0';
}
for(i=0;i<y;i++)
{
    sum+=b[i]-'0';
}
...





为解题报告打分
暂时不评分

★★
★★★
★★★★
★★★★★
发表您的评论(若贴AC代码或发表禁止言论等违禁行为将被删除并扣除积分)

|返回 |   | 转到页头|
Copyright @ 2008-2024(浙ICP备2022001332号), TZOJ. All Rights Reserved.