我需要功课帮助!这不是一个到期的任务,所以请不要说任何评论说我需要自己解决这个问题。只是做一些额外的练习来准备我的考试。
我需要编写一个主程序来计算大型双精度数中6.0的出现次数,然后打印出数组中元素的数量和6.0的值。另外,计算并将平均值打印到数组中所有元素的7位小数。
使用for循环。
数组fArray []在名为arraypractice.h的文件中定义。添加到 您的项目目录并在您的代码中引用它,如下所示:
int main(void)
{
#include "arraypractice.h“
.
我只能确定阵列的长度,而且我不知道从哪里开始:
int main(void)
{
#include "arraypractice.h"
int n;
n = sizeof(fArray);
int size;
printf("Size of the given array is %d\n", n / sizeof(double));
答案 0 :(得分:1)
您需要在教程中查找for
循环,其中包括:p
关于7位小数的平均值的问题是在精度的主题下。我使用的是%12.7f
,f
用于双精度,12.7
表示小数点前12位和后7位数。
#include <stdio.h>
int main(void) {
double fArray[10] = {1.2, 12.6, 6.0, 5.3, 3.2, 6.0, 5.0, 60.3, 6.0, 1.1};
int count = 0;
int sixes = 0;
double sum = 0;
for (int i = 0; i < (sizeof(fArray) / sizeof((fArray)[0])); i++)
{
count +=1;
sum += fArray[i];
if(fArray[i] == 6.0){
sixes ++;
}
}
printf("Total elements: %d \n Sixes found: %d \n Average is: %12.7f", count, sixes, sum/count);
return 0;
}
上面的代码运行正常,但是从文件中读取双打。您必须指定更多文件的外观,否则可能需要在Stack Overflow上另一个问题 SEARCH 。
...但是这个(未经测试的)代码示例应该让你开始:)
FILE *f=fopen("file.txt","r");
if(f==NULL)
return 1;
double values[10];
unsigned int i;
for(i = 0; i < 10; ++i) {
fscanf(f, "%lf",&values[i]);
printf("%lf\n",values[i]);
}
close(f);