私のコードでは、 for ループの初期化部分で変数を初期化できません。このコードを書くとき:
long unsigned int arr[3][3];
char str[50];
for(;gets(str);)
{
int temp=0;
for(int i,j,k=0; str[k]!='\0'; k++){ if(str[k]!=' ')temp=temp*10+(str[k]-48);
コンパイラが示しています
error: 'for' loop initial declarations are only allowed in c99 mode
それが何を意味するのかわかりませんが、次のようにコードを書くと:
long unsigned int arr[3][3];
char str[50];
for(;gets(str);)
{
int temp=0;
int i,j,k=0;
for(; str[k]!='\0'; k++){ if(str[k]!=' ')temp=temp*10+(str[k]-48);
それは正常に動作します。なぜこうなった?