我正在嘗試編寫一個程序,該程序可以找到最大和最小的10個數字。使用命令行參數的程序中的分段錯誤
要使用我的程序,您必須使用命令行參數-l然後號來確定數量最多,同爲最小號的命令-s。
然而,當我不輸入命令不惜一切,只是嘗試運行該程序,我收到分段錯誤。不知道我錯了哪裏。
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
int main(int argc, char* argv[])
{
int i;
int min,max,num;
char *argv1 = argv[1];
char *small = "-s";
char *large = "-l";
min=max=0;
if (0==strcmp(argv1, small))
{
for (i=2; i<argc; i++)
{
num=atoi(argv[i]);
if(i==2)
{
min=num;
}
else
{
if(min>num)min=num;
}
}
printf("The smallest number is %d\n",min);
}
else if (0==strcmp(argv1, large))
{
for (i=2; i<argc; i++)
{
num=atoi(argv[i]);
if(i==2)
{
max=num;
}
else
{
if(max<num)max=num;
}
}
printf("The largest number is %d\n",max);
}
else
{
printf("Invalid option");
}
return 0;
}
太謝謝你了!我希望有一種方式可以回報你。你一直都在幫我,我真的很感激。 –
@JohnSearcher:請注意,說「謝謝」在這裏的最佳方式是通過了投票權好的問題和有用的答案(一旦你有足夠的聲譽這樣做),並通過接受最有用的答案,你問任何問題(這也給你一個小小的提升,以你的聲望 )。 請參閱[關於]頁面,以及[如何在此處提問 ?]和 [當有人回答我的 問題時,我該怎麼辦? ?(http://stackoverflow.com/help/someone-answers) –