c語言數組輸入與輸出
① c語言結構體數組的輸入輸出
C
語言中,結構體(struct)是一種數據結構,是C語言中聚合數據類型(aggregate data type)的一類。結構體可以被聲明為變數、指針或數組等,用以實現較復雜的數據結構。
結構體同時也是一些元素的集合,這些元素稱為結構體的成員(member),且這些成員可以為不同的類型,成員一般用名字訪問。
定義與聲明
結構體的定義如下所示,struct為結構體關鍵字,tag為結構體的標志,member-list為結構體成員列表,其必須列出其所有成員;variable-list為此結構體聲明的變數。
在實際應用中,C語言結構體數組常被用來表示一個擁有相同數據結構的群體,比如一個班的學生、一個車間的職工等。
在C語言中,定義結構體數組和定義結構體變數的方式類似;
例:
struct stu{
char*name;//姓名
int num;//學號
int age;//年齡
char group;//所在小組
float score;//成績
}class[5];
表示一個班級有5個學生。
(1)c語言數組輸入與輸出擴展閱讀:
結構體數組的引用與引用一個結構體變數在原理上是一樣的。只不過結構體數組中有多個結構體變數,我們只需利用for循環一個一個地使用結構體數組中的元素。
下面編寫一個程序,編程要求:從鍵盤輸入5個學生的基本信息,如姓名、年齡、性別、學號,然後將學號最大的學生的基本信息輸出到屏幕。
#include<stdio.h>
#include<string.h>
struct STU
{
char name[20];
int age;
char sex;
char num[20];
};
void OutputSTU(struct STU stu[5]);
//函數聲明,該函數的功能是輸出學號最大的學生信息
int main(void)
{
int i;
struct STU stu[5];
for(i=0;i<5;++i)
{
printf("請輸入第%d個學生的信息:",i+1);
scanf("%s%d%c%s",
stu<i>.name,
&stu<i>
.age,&stu<i>
.sex,stu<
i>.num);/*%c
前面要加空格,不然輸入時會將空格賦給%c*/
}
OutputSTU(stu);
return 0;
}
void OutputSTU(struct STU stu[5])
{
struct STU stumax=stu[0];
int j;
for(j=1;j<5;++j)
{
if(strcmp(stumax.num,stu[j]
.num)<0)//strcmp函數的使用
{
stumax=stu[j];
}
}
printf("學生姓名:%s學生年齡:%d學生性別:%c學生學號:
%s ",stumax.name,
stumax.age,stumax.
sex,stumax.num);
}
輸出結果是:
請輸入第1個學生的信息:小紅22 F Z1207031
請輸入第2個學生的信息:小明21 M Z1207035
請輸入第3個學生的信息:小七23 F Z1207022
請輸入第4個學生的信息:小欣20 F Z1207015
請輸入第5個學生的信息:小天19 M Z1207024
學生姓名:小明學生年齡:21學生性別:M學生學號:Z1207035
② c語言數組的輸入與輸出問題
#include<stdio.h>
intmain()
{
chara[8][8]={0};
for(inti=1;i<=6;i++)
for(intj=1;j<=6;j++)
{
scanf_s("%c",&a[i][j]);
}
for(inti=0;i<8;i++)
{
for(intj=0;j<8;j++)
printf("%c",a[i][j]);
printf(" ");
}
}
③ C語言數組輸入輸出
指針a未初始化,操作未初始化的指針就出錯了。
在定義a之後,加上下面一句試試:
a = (int *)malloc(100 * sizeof(int));
④ C語言數組輸入和輸出
在C語言中for語句內不能有變數的初始化,for(i=0;i<=9;i++)應改為:
i=0;
for(i;i<=9;i++)
{
}
j變數同上;
輸入時scanf中應該是&a[i]
int a[n];//n是數值的個數
所有要有10個數的數組應該是:int a[10];
⑤ c語言 怎樣輸入一個數組單獨輸出數組裡面的一個數
樓主還欠缺基本功,有很多語法錯誤:
void
main()
{
char
a[1000];
int
i=0;int
b=0;
while(1)
{scanf("%d",a[i]);
/*scanf("%d",&a[i]);用&取地址*/
if
(a[i]=="/n")
/*這樣不行的,a[i]都是整數,永遠不可能退出循環,而且回車應該是'\n'
*/
break;
i++;
}
for(b;b=i-1;b++)
/*這樣寫也不對,可以用for(b=0;b
void
main()
{
int
a[1000];
int
i=0;int
b=0;
while(scanf("%d",a[i])==1)
/*不能這樣寫,scanf沒有返回值*/
{
i++;
for(b=0;b
評論
0
0
0
載入更多
⑥ c語言 二維數組如何輸入 該怎麼輸入數組,才能輸出
其實並不存在真正的「二維」,只不過是C編譯器自動的將它
一行一行的保存成了一維信息。所以,二維數組的輸入只要用雙重循環即可,比如:
int
a[11][11];
for(int
i=0;
i<10;
i++){
for(int
j=0;
j<10;
j++){
scanf("%d",&a[i][j]);
}
}
其實
int
a[3][3]
可以這樣初始化:
int
a[3][3]
=
{0,1,2,3,4,5,6,7,8};
編譯器會自動的將線性信息寫入二維數組中。
⑦ c語言字元串數組怎麼輸入和輸出呢
在C語言中,有兩個函數可以在控制台(顯示器)上輸出字元串,它們分別是:
puts():輸出字元串並自動換行,該函數只能輸出字元串。
printf():通過格式控制符%s輸出字元串,不能自動換行。除了字元串,printf() 還能輸出其他類型的數據。
這兩個函數相信大家已經非常熟悉了,這里不妨再演示一下,請看下面的代碼:
#include <stdio.h>
int main(){
char str[] = "http://c.biancheng.net";
printf("%s ", str); //通過字元串名字輸出
printf("%s ", "http://c.biancheng.net"); //直接輸出
puts(str); //通過字元串名字輸出
puts("http://c.biancheng.net"); //直接輸出
return 0;
}
運行結果:
http://c.biancheng.net
http://c.biancheng.net
http://c.biancheng.net
http://c.biancheng.net
注意,輸出字元串時只需要給出名字,不能帶後邊的[ ],例如,下面的兩種寫法都是錯誤的:
printf("%s ", str[]);
puts(str[10]);
(7)c語言數組輸入與輸出擴展閱讀:
由數字、字母、下劃線組成的一串字元。一般記為 s=「a1a2···an」(n>=0)。它是編程語言中表示文本的數據類型。在程序設計中,字元串(string)為符號或數值的一個連續序列,如符號串(一串字元)或二進制數字串(一串二進制數字)。
字元串在存儲上類似字元數組,它每一位單個元素都是能提取的,字元串的零位是它的長度,如s[0]=10,這提供給我們很多方便,例如高精度運算時每一位都能轉化為數字存入數組。
⑧ 急急!!!如何用c語言輸入和輸出一個二維數組
#include <stdio.h>
#include <stdlib.h>
int main()
{
int a[2][2];
int i,j;
for (i=0;i<2;i++)
{
for (j=0;j<2;j++)
{
scanf("%d ",&a[i][j]);
}
}
for(i=0;i<2;i++)
for(j=0;j<2;j++)
printf("%d",a[i][j]);
return 0;
}
運行成功
⑨ c語言 怎麼用數組輸入一組數,然後再原樣輸出
<pre name="code"class="cpp">#include<stdio.h>
int main()
{
int N;
scanf("%d",&N);
while(N--)
{
char a[100];
while(scanf("%s",a)!=EOF)
printf("%s ",a);
}
return 0;
}
(9)c語言數組輸入與輸出擴展閱讀:
include用法:
#include命令預處理命令的一種,預處理命令可以將別的源代碼內容插入到所指定的位置;可以標識出只有在特定條件下才會被編譯的某一段程序代碼;可以定義類似標識符功能的宏,在編譯時,預處理器會用別的文本取代該宏。
插入頭文件的內容
#include命令告訴預處理器將指定頭文件的內容插入到預處理器命令的相應位置。有兩種方式可以指定插入頭文件:
1、#include<文件名>
2、#include"文件名"
⑩ 關於c語言數組的輸入輸出
scanf("%d
",&a[i]);
%d後面有空格,這樣輸入6個數在輸入一個空格就可以了。