[英]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.