7-3 組個最小數 (20 分)
阿新 • • 發佈:2018-12-20
#include <bits/stdc++.h> using namespace std; int main() { int a[50]; int n, i = 0, j = 0,t; //scanf("%d", &n); for (; i < 10; i++) scanf("%d", &a[i]); if (a[0] == 0) { for (i = 1; i <10; i++) for (j = 0; j < a[i]; j++) printf("%d", i); } else { for (i = 1; i <10; i++) if (a[i] != 0) { t = i; break; } if (i != 10) { printf("%d", i); for (i = 0; i < a[0]; i++) printf("0"); for (i = 1; i < a[t]; i++) printf("%d", t); for (i = t + 1; i < 10; i++) for (j = 0; j < a[i]; j++) printf("%d", i); } else printf("0"); } system("pause"); return 0; }
寫出這個題相當於把迴圈和陣列結合已經理解了
思路:
1,先看是否有“0“存在 如果存在-->2a,不存在 —》2b
2a》利用一個for迴圈把第一個不等於的0的開始找 如果有-》3a 如果沒有 -》3b。
2b》利用兩個for迴圈來輸出;
3a>找出之後先出一次這個數 ,然後在輸出0 之後在用兩個for迴圈順序輸出每個數。
3b>無論a[0]等於多少 均輸出一個0
感悟知識點 ; 1,找陣列中下標 最小的下標從前往後找 最大的下標從後往前找 如果全部輸出不要忘了 在陣列中沒有這個數的情況 需要在迴圈外面判斷。