狂想曲丶 发表于 2020-11-18 19:29:58

数组

2.编程实现:计算并输出给定数组(长度为9)中每相邻两个元素的平均值的平方根之和。
例如,9个元素依次为12.0、34.0、4.0、23.0、34.0、45.0、18.0 、3.0、11.0,则输出结果应为S=35.951014
要求:不能使用指针和新定义函数       

jackz007 发表于 2020-11-18 19:41:30

#include <stdio.h>
#include <math.h>

int main(void)
{
      double d = {12.0 , 34.0 , 4.0 , 23.0 , 34.0 , 45.0 , 18.0 , 3.0 , 11.0} , s ;
      int i                                                                        ;
      for(s = 0.0 , i = 0 ; i < 8 ; i ++) s = s + sqrt((d + d) / 2.0)      ;
      printf("%lf\n" , s)                                                            ;
}
      编译、运行实况
D:\00.Excise\C>g++ -o x x.c

D:\00.Excise\C>x
35.951014

D:\00.Excise\C>

狂想曲丶 发表于 2020-11-18 20:27:28

jackz007 发表于 2020-11-18 19:41
编译、运行实况

#define _CRT_SECURE_NO_WARNINGS 1
#include <stdio.h>
#include <math.h>
#define n 9
int main(void)
{
    double d , s;
    int i;
    printf("请输入9个数:");
    for (i = 0; i <= n; i++)
    {
      scanf("%lf", &d);
    }
    for (s = 0.0, i = 0; i < 8; i++)
      s = s + sqrt((d + d) / 2.0);
    printf("%lf\n", s);
}

这是根据您给的代码改的,请问为什么在调试界面输入9个数之后按回车一直换行?

jackz007 发表于 2020-11-18 20:35:16

狂想曲丶 发表于 2020-11-18 20:27
#define _CRT_SECURE_NO_WARNINGS 1
#include
#include


#define n 9
. . . . . .
    double d , s;
. . . . . .
    for (i = 0; i <= n; i++)// i 的变换范围是 0 ~ 9,i = 9 时,d 会下标越界
       所以,应该这么修改
    for (i = 0; i < n ; i ++)
页: [1]
查看完整版本: 数组