永发信息网

几道编程题目,麻烦指教一下?一晚上实在挤不出个屁出来!

答案:4  悬赏:30  手机版
解决时间 2021-04-13 21:09
  • 提问者网友:爱了却不能说
  • 2021-04-13 11:41

1编程序对一组考试分数进行统计,分数由键盘逐个读入,用-1做结束标志、若输入的分数大于100,则提示重新输入,不统计最后输出总分数,总人数,平均分数,最高分,最低分?

2古印度国王要犒赏他聪明能干的宰相,达依尔(国际象棋发明者)问他要什么,达依尔回答、在第棋盘的第一个格子中放一粒麦子,在第二个格子中放入两粒麦子,在第三个各自中放入四粒麦子,以后每个格子中的麦子都是前一个格子的两倍,如此放满64个格子、请计算所需的麦子的体积??(1立方米的麦子约为1.42*10的8次方)

3有一个古典的数学问题,有一对兔子,从出生后,第三个月起,每个月都生一对兔子,小兔子长到三个月后,每个月又生一对兔子、假设所有的兔子都不死、问前20个月兔子总数分别为多少?

最佳答案
  • 五星知识达人网友:三千妖杀
  • 2021-04-13 12:39

第一题:

#include <stdio.h>


int main()
{
int p, sum = 0, count = 0, max = 0, min = 100;
printf("请输入考试分数:\n");
while(scanf("%d", &p) , p != -1)
{
if(p > 100 || p < 0)
{
printf("请重新输入!\n");
continue;
}
if(max < p)
max = p;
if(min > p)
min = p;
sum += p;
count++;
}
printf("总分数:%d\n", sum);
printf("总人数:%d\n", count);
printf("平均分数:%d\n", sum / count);
printf("最高分:%d\n", max);
printf("最低分:%d\n", min);
return 0;
}

运行截图:



第二题:

#include <stdio.h>


int main()
{
double p = 1.0, c = 1.0;
int i;
for(i = 2; i <= 64; i++)
{
p *= 2.0;
c += p;
}
printf("麦子的体积为%.2f立方米\n", c / 1.42E8);
return 0;
}

第三题:

#include <stdio.h>


int main()
{
int a = 1, b = 1, i, t;
for(i = 3; i <= 20; i++)
{
t = a + b;
a = b;
b = t;
}
printf("前20个月兔子总数为%d对\n", t);
return 0;
}

全部回答
  • 1楼网友:孤老序
  • 2021-04-13 14:12
第一题: #include <stdio.h> int main() { int sum, c, max, min, n; max = 0; min = 100; sum = c = 0; while ( 1 ) { scanf( "%d", &n ); if ( n > 100 ) { puts( "输入有误,请重新输入!" ); continue; } else if ( n == -1 ) { break; } if ( max < n ) { max = n; } if ( min > n ) { min = n; } sum += n; ++c; } printf( "总分数:%d\n", sum ); printf( "总人数:%d\n", c ); printf( "平均分数:%.2f\n", ( double)sum / c ); printf( "最高分:%d\n", max ); printf( "最低分:%d\n", min ); return 0; } 第二题: 这个是求2^0+2^1+2^2+2^3+...+2^63的和,可以用等比数列求和公式计算:1*(1-2^64)/(1-2),下面用的是循环: #include <stdio.h> int main() { double s, t; int i; s = t = 1; for( i = 1; i < 64; ++i ) { t *= 2; s += t; } printf( "麦子的体积为%g立方米\n", s / 1.42e8 ); return 0; } 第三题: 斐波那契额数列求和: #include <stdio.h> int main() { int a = 1, b = 1, i, t; for( i = 3; i <= 20; ++i ) { t = a + b; a = b; b = t; printf( "前%d个月兔子总数为%d对\n", i, t ); } return 0; } 代码已改正,之前的确实有问题,呵呵
  • 2楼网友:酒者煙囻
  • 2021-04-13 13:31
第2题:1*2*2*…*2(63个2)=128的9次方
  • 3楼网友:你可爱的野爹
  • 2021-04-13 13:03
国王要赔大概是地球人几十年的麦子生产总产量→二十个月后有几千只兔子.
我要举报
如以上回答内容为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
点此我要举报以上问答信息
大家都在看
推荐资讯