c語言筆試輸入輸出(數組測試)


c語言定義數組:

二維數組在定義的時候,可以不給出行數,但必須給出列數,二維數組的大小根據初始化的行數來定

int d[ ][4] = {1,2,3,4,5};//合法 這叫局部初始化,也得給出初值。。。一般都是這樣逐個初始化 int[2][2]={1,2,3,4};
每行有4列,則1234是一行,5是另一行,且后面有三個空間。所以一共8個int空間
printf("sizeof(d)= %d\n",sizeof(d)); 為32
 
所以c語言的二維數組必須是方塊形的矩陣???必須有列自動換行和補0。。
java的二維數組可以是每行的列不對齊的那種。所以java必須有行,列無所謂。
 
Java:(而且java推薦int[ ][ ] d 這樣寫)

關於互聯網的在線筆試輸入輸出:

 編譯器環境說明:http://OJ.acmcoder.com/ExamNotice.html
在線編程題刷題訓練:http://www.acmcoder.com

// C
#include <stdio.h>
int main() { int N, M; // 每組第一行是2個整數,N和M,至於為啥用while,因為是多組。
   while(scanf("%d %d", &N, &M) != EOF) { printf("%d %d\n", N, M); // 循環讀取“接下來的M行”
      for (int i=0; i<M; i++) { int a, b, c; // 每行是3個整數,a,b,c。
        scanf("%d %d %d", &a, &b, &c); printf("%d %d %d\n", a, b, c); } // M行讀取完了,就又要開始下一組了,去while那里。
 } }

以上按下ctrl+z代表EOF即文件結尾則跳出while

或者在while里面設置一個標志if(flag){break;} 跳出while

那么上面這個二維數組如何輸入賦值呢?

a[i][0]=a居然不行?

答案是拋棄把a,b,c賦值進來的想法,用scanf("%d",&sum[i][j]);

#include <stdio.h>
int main(int argc, char const *argv[]) { int n,m; while(scanf("%d %d",&n,&m)!=EOF){ printf("%d %d\n",n,m); int a[m][2];//得放在這里才行!!!!!!!!!!!
        for (int i = 0; i < m; i++) { /* code */
            // int a,b,c; // scanf("%d %d %d",&a,&b,&c); // printf("%d %d %d\n",a,b,c);
            for (int j = 0; j < 3; j++) { /* code */ scanf("%d",&a[i][j]);//每次只能輸入1個再換行
 } printf("\n"); } for (int i = 0; i < m; i++) { for (int j = 0; j < 3; j++) { printf("a[%d][%d]:%-4d",i,j,a[i][j]);//100200
 } printf("\n"); } if (m==5) { /* code */
            break; } } // for (int i = 0; i < m; i++) a只能在m定以后才能放 所以要在while里面,所以這一段不能放外面了 a 會報錯 // { // for (int j = 0; j < 2; j++) // { // printf("a[%d][%d]:%-4d",i,j,a[i][j]);//100200 // } // printf("\n"); // }
    printf("%d\n",m); printf("over"); return 0; }

運行結果:

1 2//輸入
1 2//打印
1 2 3//輸入

2 3 4//輸入

a[0][0]:1 a[0][1]:2 a[0][2]:2//輸出打印
a[1][0]:2 a[1][1]:3 a[1][2]:4

^Z//輸入
over//輸出


c語言中是沒有String頭文件嗎?目前只看到字符串用數組的形式輸入,叫做字符數組

 

 最后這兩個,{ }包起來的一行這樣是挨個兒賦值,字符加單引號,數字就不用加單引號,都得加逗號。

“ ”包起來也是一行,是直接字符串賦值。列不夠補0

 

 字符串賦值會在末尾多占一個字節\0,當做一個字符串整體那么輸入輸出簡單一些(因為字符得一個一個循環輸入輸出)

這種字符還可以用%s占位符來輸出字符串

 一行一行輸出:hello和xxw

  char strr[15] = {"helloxxw"}; printf("%s\n",strr); char str[15]; printf("input string:\n"); scanf("%s",str); printf("output:%s\n",str); return 0; }

運行結果:

input string:
helloworld
output:helloworld

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM