【发布时间】:2021-12-24 06:17:15
【问题描述】:
过去一小时我一直在尝试编写此代码,但我不断收到“分段错误”。我对C还是很陌生,所以请不要太苛刻。有人可以帮忙吗?
这是我的代码:
输入:4 2 4 2 2 5 6 输出:3
#include<stdio.h>
#include<stdlib.h>
int degreeOfArray(int arr[], int n)
{
int maxnum = -100000;
int currentN = 0;
int res;
for(int i = 0; i < n; i++)
{
currentN = 0;
for(int j = 0; j < n; j++)
{
if(arr[i] == arr[j])
{
currentN++;
}
}
if(currentN > maxnum) /*if the current is greater than max, current is max*/
{
maxnum = currentN;
res = arr[i];
}
}
return res;
}
int main(int argc, char**argv)
{
argv++;
int n = argc - 1;
int arr[n];
for(int i = 0; i < n; i++)
{
arr[i] = atoi(argv[i + 1]);
}
printf("%d\n", degreeOfArray(arr, n));
}
【问题讨论】:
-
程序的输入是什么样的?
-
我的错,输入:4 2 4 2 2 5 6 输出:3
-
argv[i + 1]... 但你之前已经做过argv++。 -
请在您的问题中包含它,并显示您在运行程序时遇到的确切错误
-
我应该删除 argv++ 吗?
标签: c segmentation-fault