これは私のコードです。なんらかの理由で、無限ループ(最初のforループ)に詰まってしまいます。このコマンドの目的は、コマンドライン引数を取得するためにそれをコード化し、ユーザーがその多くの引数を入力し、残りのプログラムが最小の番号を出力します。前もって感謝します!argcを使ってforループの範囲を制御する
#include<stdio.h>
int main(int argc, char *argv[])
{
int array[argc];
int smallest;
for(int i=0; i < argc; i++)
{
printf("Welcome to number comparator!\n");
printf("Enter command line # of numbers(enter delimitater):");
scanf("%d",&array[i]);
}
for(int i=0; i < sizeof(array); i++)
{
if(i == 0)
smallest=array[i];
else if(array[i] < array[i-1])
{
smallest=array[i];
}
}
}
printf("The smallest number is %d", smallest);
return 0;
}
編集:これは、cmd行から整数の配列を取得するのと同じではありません。 cmd行の引数は、入力する必要がある引数の数を入力するだけです。本質的に、私が./a.out 5.を実行すると、その後に5つの数字を入力し、最小値を返すべきです。
[配列内の要素の数を見つける方法]の複製があります(http://stackoverflow.com/questions/12646821/how-to-find-the-number-of-elements-in-an -array) – kaylum
配列のサイズと配列内の要素数が異なります。 – kaylum
argcは渡されたパラメータの数 –