實驗代碼:html
#include <stdio.h> int main() { int i, n, h, a[10]; scanf("%d", &n); for (i = 0; i < n; i++) scanf("%d", &a[i]); for (i = 0; i < n/2; i++) { h = a[i]; a[i] = a[n-1-i]; a[n-1-i] = h; } for (i = 0; i < n-1; i++) printf("%d ", a[i]); printf("%d\n", a[n-1]); return 0; }
設計思路:git
第一步:定義變量,按要求輸入。根據題意判斷只需判斷數組中一半的數據便可獲得結果。 數組
第二步:定義變量h,將a[i]與a[n-1-i]進行交換。學習
第三步:輸出a[i]與a[n-1]。spa
流程圖:.net
遇到的問題及解決方法:設計
在交換中將數組中全部數進行了交換致使最後一位沒有輸出。3d
提交列表:code
實驗代碼:htm
#include<stdio.h> int main() { int i,N; int a[10]; int s,p; scanf("%d",&N); for(i=0;i<N;i++) { scanf("%d\t",&a[i]); } s=a[0]; p=0; for(i=1;i<N;i++) { if(s<a[i]) { s=a[i]; p=i; } } a[p]=a[N-1]; a[N-1]=s; s=a[0]; p=0; for(i=1;i<N;i++) { if(s>a[i]) { s=a[i]; p=i; } } a[p]=a[0]; a[0]=s; for(i=0;i<N;i++) { printf("%d ",a[i]); } return 0; }
設計思路:
第一步:定義變量並賦予初值,輸入。
第二步:判斷數組中的最小值賦給另外一個變量並把它與第一個進行交換,一樣找出最大值賦給其餘變量並與最後的進行交換。
第三步:輸出。
流程圖:
遇到的問題及解決方法:
本題中所遇到的問題較多,第一次將題意理解錯誤將最大值與最小值進行了交換,後來沒有考慮最大最小值位於數組首尾的狀況,沒有引入另兩個存放的變量。
實驗代碼:
#include <stdio.h> int main(void) { int N, M, i, j, temp; int a[100]; scanf("%d %d", &N, &M); for (i = 0; i < N; i++) scanf("%d", &a[i]); if (M > N && M % N != 0) M = M % N; else if (M > N&&M%N == 0) M = 0; else M = M; for (i = 0, j = N - M - 1; i < j; i++, j--) { temp = a[i]; a[i] = a[j]; a[j] = temp; } for (i = N - M, j = N - 1; i < j; i++, j--) { temp = a[i]; a[i] = a[j]; a[j] = temp; } for (i = 0, j = N - 1; i < j; i++, j--) { temp = a[i]; a[i] = a[j]; a[j] = temp; } for (i = 0; i < N - 1; i++) printf("%d ", a[i]); printf("%d", a[N - 1]); return 0; }
設計思路:
第一步:定義並輸入,先判斷M與N之間的大小關係
第二步:根據題意引入temp進行交換
第三步:輸出
流程圖:
遇到的問題及解決方法:
這道題我並不理解參考了其餘答案。
提交列表:
個人git地址是:https://git.coding.net/zhouxuan12/123.git
總結:這兩週主要學習了數組,一維數組尚且理解,但對二維數組始終不太明白只能記着。
表格 折線圖 :
點評:
http://www.cnblogs.com/fengzx/p/7811151.html