十年網(wǎng)站開發(fā)經(jīng)驗(yàn) + 多家企業(yè)客戶 + 靠譜的建站團(tuán)隊(duì)
量身定制 + 運(yùn)營維護(hù)+專業(yè)推廣+無憂售后,網(wǎng)站問題一站解決
c語言,用printf輸出一維數(shù)組的語句是printf ("%s", a),具體輸出一維數(shù)組的操作步驟如下:

讓客戶滿意是我們工作的目標(biāo),不斷超越客戶的期望值來自于我們對這個行業(yè)的熱愛。我們立志把好的技術(shù)通過有效、簡單的方式提供給客戶,將通過不懈努力成為客戶在信息化領(lǐng)域值得信任、有價值的長期合作伙伴,公司提供的服務(wù)項(xiàng)目有:域名注冊、虛擬空間、營銷軟件、網(wǎng)站建設(shè)、開福網(wǎng)站維護(hù)、網(wǎng)站推廣。
1、首先我們打開Visual Studio 2010軟件,新建一個項(xiàng)目。
2、然后我們按照圖示代碼輸入包含程序需要用到的頭文件。
3、然后我們按照圖示代碼輸入主函數(shù)main。
4、然后我們按照圖示代碼定義一個一維數(shù)組。
5、然后我們按照圖示代碼定義一個數(shù)組指針。
6、然后我們按照圖示代碼輸入數(shù)組指針指向一維數(shù)組。
7、然后我們按照圖示代碼輸入for循環(huán)。
8、最后打印出結(jié)果即可。
限制在C語言中,利用printf直接輸出數(shù)組是不可以的。
但是你的做法是可以的。只是問題出在你數(shù)組使用越界了。
解釋一下:
printf不能直接用來輸出數(shù)組。
例如:
#includestdio.h
int?main(){
int?a[3]={1,2,3};
int?i;
for(i=0;i3;i++)
printf("%d",a);
}
是錯誤的
所以要是輸出數(shù)組的話,必須要借助其他的語句輸出,要一個一個地輸出,例如for語句的循環(huán)輸出。
例如:
#includestdio.h
int?main(){
int?a[3]={1,2,3};
int?i;
for(i=0;i3;i++)
printf("%d",a[i]);
}
但是你這樣的做法是可以:
因?yàn)槟銓懙腶[3][3]實(shí)際上已經(jīng)指定了這個數(shù)字在這個二維數(shù)組中的橫坐標(biāo)和縱坐標(biāo),相當(dāng)于一個int型的數(shù)據(jù)。但是不過你數(shù)組越界了。
額外引申一下:直接用scanf輸入一個數(shù)組的量可以么?
#includestdio.h
int main(){
char a[3];
scanf("%c",a);
int i;
for(i=0;i3;i++)
printf("%c",a[i]);
}
這樣輸入3個字符,只能把輸入的第一個字符放進(jìn)a數(shù)組里面。因?yàn)閍就是這個數(shù)組的地址,同時也表示這個數(shù)組的第一個。a可以給數(shù)組的第一個放進(jìn)一個字符,但是后面的就無能為力的。
代碼均在Devc++測試。
你輸入的\0被認(rèn)為是2個字符。
'\\'和'0',不是'\0'
至于輸入abcdefghij時出問題,那是數(shù)組邊界問題。
用字符數(shù)組保存字符串時,要預(yù)留一個數(shù)組成員,用來保存結(jié)尾符號'\0'。
所以char[10]只能保存長度為9的字符串。
printf輸出字符串的時候,只有遇到'\0'才會停止輸出。
'\0'的值就是0.它會一直輸出直到在后面連續(xù)的內(nèi)存里遇到'\0'
1、首先先簡單定義一個整形的數(shù)組int[] nums = { 1, 2, 3, 4, 5, 6 }。
2、之后先用常規(guī)的for循環(huán)來輸出數(shù)組中的元素,for (int i = 0; i nums.Length; i++)? 其中 i nums.Length指的是i小于數(shù)組的長度。
3、接著在for循環(huán)里調(diào)用輸出命令 Console.WriteLine(nums[i]);,來輸出每個元素。
4、同時可也用C#的foreach來輸出,該方法較簡單,要foreach (int i,其中如果是字符數(shù)組,需要用string來先定義個變量。
5、之后要寫in nums 來確定遍歷的是哪個數(shù)組。
6、最后用命令Console.WriteLine(i);來輸出每個元素,注意變量是i。i就是遍歷nums數(shù)組的一個中間變量。
7、最后執(zhí)行下,發(fā)現(xiàn)兩種方法都很成功的輸出了數(shù)組的每個元素的值。
#include
"stdio.h"
void
input(int
a[10])
//給一維數(shù)組輸入數(shù)據(jù)
{
int
i;
for(i=0;i10;i++)
scanf("%d",a[i]);
}
void
output(int
a[10])
//輸出一維數(shù)組輸入數(shù)據(jù)
{
int
i;
for(i=0;i10;i++)
printf("%d
",a[i]);
}
int
main()
{
int
b[10];
input(b);
//調(diào)用input函數(shù)給數(shù)組b賦值
output(b);//調(diào)用output函數(shù)輸出數(shù)組b中的值
}
這肯定不同啊,你定義的z等變量都是int類型的,而第一個程序中使用了gets函數(shù),該函數(shù)用于獲取一個字符串,以回車作為結(jié)束標(biāo)識
第二個程序中使用了getchar函數(shù),而該函數(shù)的作用是獲取一個字符,得到的是字符類型
第三個是使用scanf,格式為%d,這個才是正宗的獲取整型數(shù)據(jù)的方法
要得到正確結(jié)果,首先需要知道每個函數(shù)的功能和使用范圍。