信息学奥赛一本通 2034:【例5.1】反序输出
生活随笔
收集整理的這篇文章主要介紹了
信息学奥赛一本通 2034:【例5.1】反序输出
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
【題目鏈接】
ybt 2034:【例5.1】反序輸出
【題目考點】
1. 數組填充
設數組a, 變化的下標ai,初值為0
例: int a[105], ai = 0;
方法1:填充到下標0~ai-1
將數值x填到數組中:a[ai++] = x;
ai表示:數組長度(數組中元素的個數),數組待填充的位置。
正向遍歷寫法:for(int i = 0; i < ai; ++i)
方法2:填充到下標1~ai
將數值x填到數組中:a[++ai] = x;
ai表示:數組長度(數組中元素的個數),數組最后一個元素的位置。
正向遍歷寫法:for(int i = 1; i <= ai; ++i)
2. 逆序遍歷數組
3. 輸入不確定個數的數字
while(cin >> a) {//... }或
while(scanf("%d", &a) != EOF)) {//... }OJ上實際是從文件輸入,文件末尾是EOF(end of file,實際是-1)。當讀到文件末尾時cin >> a會返回false,scanf("%d", &a)會返回EOF,讓循環跳出。
這樣的程序在本地調試時,輸入n個數據后不會停止。此時可以按Ctrl+Z,控制臺中出現^Z后,按回車,這樣可以結束輸入,看到程序運行的結果。
【題解代碼】
解法1:填充到下標0~n-1
#include <bits/stdc++.h> using namespace std; int main() {int a[105], ai = 0, x;while(cin >> x)a[ai++] = x;for(int i = ai - 1; i >= 0; --i)cout << a[i] << ' ';return 0; }解法2:填充到下標1~n
#include <bits/stdc++.h> using namespace std; int main() {int a[105], ai = 0, x;while(cin >> x)a[++ai] = x;for(int i = ai; i >= 1; --i)cout << a[i] << ' ';return 0; }總結
以上是生活随笔為你收集整理的信息学奥赛一本通 2034:【例5.1】反序输出的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 信息学奥赛一本通(1124:矩阵加法)
- 下一篇: 信息学奥赛一本通(1161:转进制)