簡體   English   中英

cp中的二維數組

[英]2d array in c p

#include<stdio.h>
int main(){
 int i=0,j=0;
 char a[5][2];
 for(i=0;i<5;i++){
  for(j=0;j<2;j++){
   scanf("%c",&a[i][j]);
  }
 }
 for(i=0;i<5;i++){
  for(j=0;j<2;j++){
   printf("\n %c \n",a[i][j]);
   printf("\t");
  }
  printf("\n");
 }
 return 0;
}

i / p:gu sd ec

我沒有輸出。

我正在嘗試一個二維數組上的簡單程序。 我無法獲得輸出,並且輸入未使用5 * 2字符,而是僅使用4 * 2字符。

粘貼我的代碼,在%c之前留一個空格。

   #include<stdio.h>
    int main(){
     int i=0,j=0;
     char a[5][2];
     for(i=0;i<5;i++){
      for(j=0;j<2;j++){
       scanf(" %c",&a[i][j]);
      }
     }
     for(i=0;i<5;i++){
      for(j=0;j<2;j++){
       printf("\n %c \n",a[i][j]);
       printf("\t");
      }
      printf("\n");
     }
     return 0;
    }

輸入中的空格也被視為char,因為在您看來只有4 * 2的輸入被占用。如果輸入沒有空格,則可以輸入5 * 2的char。

原因是您在scanf(“%c”)中使用的數據類型。

由於Table,NewLine,Space都是可用字符。 因此,如果您插入類似:

 a \n

a [0] [0]將為'a',而a [0] [1]將為'\\ n'。

如果使用以下代碼進行測試,則可以驗證此結論:

#include<stdio.h>                                                                                                                           
int main(){
  int i=0,j=0;
  int a[5][2];
  for(i=0;i<5;i++){
    for(j=0;j<2;j++){
      printf("i=%d,j=%d:\n",i,j);
      scanf("%d",&a[i][j]);
    }
  }
  for(i=0;i<5;i++){
    for(j=0;j<2;j++){
      printf("\n %d \n",a[i][j]);
      printf("\t");
    }
    printf("\n");
  }
  return 0;
}

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM