C 求数组中整数的频率并计算x到n次方
我正在尝试解决两个不同的C问题,希望得到一些帮助和建议,以便更好地了解C是如何工作的,以及我是否在正确的轨道上使用这些问题 第一个问题是:编写一个函数,计算值(x)在数组的前(n)个元素中出现的次数,并将该次数作为数组中x的频率返回。因此,一个例子是,如果传递的数组包含值{5,7,23,8,23,67,23}。n是7,x是23,那么它将返回值3,因为23在数组的前7个元素中出现了3次 以下是我到目前为止的情况:C 求数组中整数的频率并计算x到n次方,c,C,我正在尝试解决两个不同的C问题,希望得到一些帮助和建议,以便更好地了解C是如何工作的,以及我是否在正确的轨道上使用这些问题 第一个问题是:编写一个函数,计算值(x)在数组的前(n)个元素中出现的次数,并将该次数作为数组中x的频率返回。因此,一个例子是,如果传递的数组包含值{5,7,23,8,23,67,23}。n是7,x是23,那么它将返回值3,因为23在数组的前7个元素中出现了3次 以下是我到目前为止的情况: #include <stdio.h> #define SIZE 20 /
#include <stdio.h>
#define SIZE 20 /* just for example - function should work with array of any size */
int frequency (int theArray[], int n, int x)
{
int i;
int count = 0;
for (i = 0; i < n; i++)
{
if (theArray[i] == x)
{
count = count++;
}
}
return (count);
}
int main(void)
{
/* hard code n and x just as examples */
int n = 12; /* look through first 12 items of array */
int x = 5; /* value to find */
int numberFrequency;
long int theArray[SIZE] = {5,2,3,4,5,6,1,2,10,5,10,12,6,8,7};
numberFrequency = frequency (theArray[SIZE], n, x);
printf ("%i", numberFrequency);
return 0;
}
#包括
#定义大小20/*仅举个例子-函数应该与任何大小的数组一起工作*/
整数频率(整数阵列[],整数n,整数x)
{
int i;
整数计数=0;
对于(i=0;i
目前,我收到一条运行时错误消息,我相信这与for循环函数有关
第二个问题是:编写一个将整数提升为正整数幂的函数。让函数返回一个长整数,它表示计算x到n次方的结果。不要使用C pow库函数,也不要使用递归
到目前为止,我的代码是:
#include <stdio.h>
int x_to_the_n (int x, int n)
{
int i;
long int result = 1;
if (n == 0)
{
return(result);
}
else
{
for (i = 0; i < n ; ++i)
{
/* equation here - How can I make (x*x*x*x*x*x,etc...? */
result = x*(n*x);
}
}
return (result);
}
int main(void)
{
int x =4;
int n =5;
long int result;
result = x_to_the_n (x, n);
printf ("%i", result);
return 0;
}
#包括
int x_到int n(int x,int n)
{
int i;
长整数结果=1;
如果(n==0)
{
返回(结果);
}
其他的
{
对于(i=0;i
我不能使用递归,所以这是不可能的。所以,我认为下一个最好的方法是for循环。但是我有点陷入了如何根据(n)的值生成for循环do(xxx*x…)。如有任何帮助和建议,我们将不胜感激!在第一个问题中,请将数组后面的元素作为函数的参数 定义一个长整型数组,并将其传递给一个需要整型数组的函数
long int theArray[SIZE] = {5,2,3,4,5,6,1,2,10,5,10,12,6,8,7};
应该是
int theArray[SIZE] = {5,2,3,4,5,6,1,2,10,5,10,12,6,8,7};
与此相反:
numberFrequency = frequency (theArray[SIZE], n, x);
试试这个:
numberFrequency = frequency (theArray, n, x);
并替换:
count = count++;
与:
count=count++;
-->count++;
long intthearray[SIZE]={
-->intthearray[SIZE]={
您没有计算x
在27
等数字中出现的次数。您需要将每个元素发送到一个新函数,以数字形式转换数字,然后检查x
是否在数字中,返回出现的次数。下次请针对两个问题提出两个问题。否则,您的结果将失败“不容易搜索。这对问答格式也不好,因为你可能会得到两个单独的答案,每个答案解决一个问题。@CodeMonkey true.。我在看n=7
,错误地认为他在找7。这应该是一个注释。我不明白为什么他的问题的解决方案不应该是一个答案。他提出了两个单独的答案。”问题是问题中的问题,不是我的答案的问题。因为你在编辑之前的第一个答案只修复了他的代码中的一个错误。不是完整的答案。现在更好了。@CodeMonkey我不知道count=count++;是多余的,下次我会尽量记住,运行时错误已经修复,谢谢!@TonyTannous在编辑之前它是正确的在(现在2)的编辑中,我添加了一个不必要的东西,并且根据您的平台可能会导致问题。
count++;