C 求数组中整数的频率并计算x到n次方

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 /

我正在尝试解决两个不同的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 /* 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++;