C:输入数字计数(数组方法)
兩類題型
1.例如 1 2 3 2 1 -1 然后計數
#include <stdio.h>
#include <stdlib.h>
int main()
{
??? //解決計數問題,當輸入-1的時候代表停止輸入
??? /*
??????? 思路
??????? 通過數組cout[]作為計數器,每次鍵入的值如果為0-9,則該cout[i]++ cout[i]表示鍵入數字的容器,每鍵入一次加1
??? */
??? int num, i;
??? int cout[10];
??? for (i = 0; i < 10; i++)
??? {
??????? cout[i] = 0;
??? }
??? scanf("%d",&num);
??? while(num != -1)
??? {
??????? if (num>=0 && num <= 9)
??????? {
??????????? cout[num]++;
??????? }
??????? scanf("%d",&num);
??? }
??? for (i = 0; i < 10; i++)
??? {
??????? printf("%d出現的次數為%d\n", i, cout[i]);
??? }
}
核心在于使用scanf與while的結合方法
2.例如輸入整型123321,計數
#include <stdio.h>
#include <stdlib.h>
int main()
{
??? /*
??????? 問題:鍵入一個整型,計算整型數字中每個數字出現的個數
??????? 思路
??????????? 例 1223
??????????? 1.接收數字后,使用每次取末位的方式,取出 (循環終止條件為num!=0)?? number接收末位數字
??????????? 2.放在cout[i]計數器中
??????????? 3.打印
??????? 1223
??????????????????? num = 1223
??????? number = 3? num = 122?? cout[3] = 1
???????????????? 2??????? 12??? cout[2] = 1
???????????????? 2??????? 1???? cout[2] = 2
???????????????? 1??????? 0???? cout[1] = 1
??? */
??? int num, number, i;
??? int cout[10];
??? scanf("%d",&num);
??? for (i = 0; i < 10; i++)
??? {
??????? cout[i] = 0;
??? }
??? while(num != 0)
??? {
??????? number = num % 10;
??????? num = num / 10;
??????? if (number >=0 && number <= 9)
??????? {
??????????? cout[number]++;
??????? }
??? }
??? for (i = 0; i < 10; i++)
??? {
??????? printf("%d出現的次數為%d\n", i, cout[i]);
??? }
}
和第一種類似
兩種方法都要注意,使用數組之前,要對其初始化
??? for (i = 0; i < 10; i++)
??? {
??????? cout[i] = 0;
??? }
其中關于數組初始化還有一個技巧:
tip:
直接cout[ ] = {0}
也可以用cout[ ] = {[1] =2, 4,[5]=6 }
輸出為 0 2 4 0 0 6
轉載于:https://www.cnblogs.com/zhaoy-shine/p/10828143.html
與50位技術專家面對面20年技術見證,附贈技術全景圖總結
以上是生活随笔為你收集整理的C:输入数字计数(数组方法)的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: JVM进阶之路, 不然又要被面试官吊打了
- 下一篇: 我们到底为什么要用 IoC 和 AOP