程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> C語言 >> C >> C語言問答 >> C語言一個給char類型數組賦值問題。

C語言一個給char類型數組賦值問題。

編輯:C語言問答

C語言一個給char類型數組賦值問題。

50 補充:char a[10];
沒有賦初值。
然後通過scanf給a賦值
scanf("%s",a);
賦的值是:1111000010
首先為什麼給a賦值的時候不用加&這個符號呢?
還有賦值之後 比如我要輸出數組的值
結果是
a[0]=1111000010
a[1]=111000010
a[2]=11000010
a[3]=1000010
a[4]=000010
a[5]=00010
…………
為什麼會是這樣
如何才能讓輸出的結果
a[1]=1
a[2]=1
a[3]=1
a[4]=1
a[5]=0
……
如果才能分開呢? 用gets給數組賦值也是這樣的情況。

因為我是在做一個進制轉換的問題 輸入一串二進制的數轉換成十進制,遇上這個問題了, 解決不了啊 ,求大神幫忙。

最佳回答:

只有整形變量才用&;
字符串不需要FOR循環賦值;
用SCANF(“%C”,A)就可以了;

補充:

#include<stdio.h>
int main()
{
 int n;
 scanf("%d",&n);
 int a[1000];
 int i=0;
 while(1)
 {
  a[i]=n%2;
  n=n/2;
  if(n==0){break;}
  i++;
 }
 for(int j=i; j>=0; j--)
 {
 printf("%d",a[j]);
 }
 
 return 0;
}
補充:
如上是代碼,別忘了滿意歐
補充:
@You, Me.
追問:
但是輸出的問題沒有解決啊。 而且數組是定義的char類型。  用scanf輸入11111111000這樣沒有空格的數據後 , 要打印出數組裡面的數據。a[0]會把原本輸入的所有數據打印出來
a[1]比a[0]少第一個數字, 以此類推 這是為什麼。。。。怎麼才能做到a[0]=1
a[1]=1
…………
a[10]=0這樣呢?
回答:
GETS亦可,GETS(A);
追問:
用gets輸入
輸出的結果是
a[0]=1111000010
a[1]=111000010
a[2]=11000010
而不是一個一個數字的輸出啊、、、
回答:
你可以直接看一下這個代碼啊
  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved