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