1. 程式人生 > >1021 個位數統計(C語言)

1021 個位數統計(C語言)

1021 個位數統計 (15)(15 分)

給定一個k位整數N = d~k-1~*10^k-1^ + ... + d~1~*10^1^ + d~0~ (0<=d~i~<=9, i=0,...,k-1, d~k-1~>0),請編寫程式統計每種不同的個位數字出現的次數。例如:給定N = 100311,則有2個0,3個1,和1個3。

輸入格式:

每個輸入包含1個測試用例,即一個不超過1000位的正整數N。

輸出格式:

對N中每一種不同的個位數字,以D:M的格式在一行中輸出該位數字D及其在N中出現的次數M。要求按D的升序輸出。

輸入樣例:

100311

輸出樣例:

0:2
1:3
3:1

 分析:使用篩選演算法的原理,用陣列a來儲存每個數出現的次數,序數(i)對應位置陣列的值(a[i])即為i出現的次數。

程式碼如下:

#include <stdio.h> 
int main(){
	int a[10] = { 0 },i;
	char n[1001];
	gets(n);
	char *p = n;
	while(*p){
		switch (*p){
		case '0':a[0]++; break;
		case '1':a[1]++; break;
		case '2':a[2]++; break;
		case '3':a[3]++; break;
		case '4':a[4]++; break;
		case '5':a[5]++; break;
		case '6':a[6]++; break;
		case '7':a[7]++; break;
		case '8':a[8]++; break;
		case '9':a[9]++; break;
		}
		p++;
	}
	for (i = 0; i<10; i++){
		if(a[i]>0){
			printf("%d:%d\n", i, a[i]);

		}
	}
	return 0;
}

相關推薦

PTA 1021 個位數統計C語言

我對這道題的基本思路是:通過字串輸出這些數,然後進行遍歷,使用新建的陣列對重複出現的數字進行儲存,最後輸出值陣列中值不為零的數。 最關鍵的是:利用下標來儲存重複的數並使下標的值自增。 這個比較繁瑣,還會有更簡練的,望各位大佬指出不足。 程式碼如下: #include <

1021 個位數統計C語言

1021 個位數統計 (15)(15 分) 給定一個k位整數N = d~k-1~*10^k-1^ + ... + d~1~*10^1^ + d~0~ (0<=d~i~<=9, i=0,...,k-1, d~k-1~>0),請編寫程式統計每種不同的個位數字出

1021 個位數統計 15 分 c++

給定一個 k 位整數 N=d​k−1​​10​k−1​​+⋯+d​1​​10​1​​+d​0​​ (0≤d​i​​≤9, i=0,⋯,k−1, d​k−1​​>0),請編寫程式統計每種不同的個位數字出現的次數。例如:給定 N=100311,則有 2 個 0,3 個 1,和 1 個 3。 輸

PAT (Basic Level) Practice 中文1021 個位數統計 15 分C++

1021 個位數統計 (15 分) 給定一個 k 位整數 N=d​k−1 10​k−1​​ +⋯+d​1 101+d​0(0≤d​i​​ ≤9, i=0,⋯,k−1, d​k−1 >0),請編寫程式統計每種不同的個位數字出現的次數。例如:給定N=100311,則有 2 個 0,

1021 個位數統計15 分

mat ace inner iostream end 升序 ott pre ble 給定一個 k 位整數 N=d?k?1??10?k?1??+?+d?1??10?1??+d?0?? (0≤d?i??≤9, i=0,?,k?1, d?k?1??>0),請編寫程序統計

1021 個位數統計 15 分迭代器

1021 個位數統計 (15 分) 給定一個 k 位整數 N=d​k−1​​10​k−1​​+⋯+d​1​​10​1​​+d​0​​ (0≤d​i​​≤9, i=0,⋯,k−1, d​k−1​​>0),請編寫程

1021 個位數統計 15 分陣列

1021 個位數統計 (15 分) 給定一個 k 位整數 N=d​k−1​​10​k−1​​+⋯+d​1​​10​1​​+d​0​​ (0≤d​i​​≤9, i=0,⋯,k−1, d​k−1​​>0),請編寫程

1021 個位數統計 15 分迭代器

1021 個位數統計 (15 分) 給定一個 k 位整數 N=d​k−1​​10​k−1​​+⋯+d​1​​10​1​​+d​0​​ (0≤d​i​​≤9, i=0,⋯,k−1, d​k−1​​>0),請編寫程式統計每種不同的個位數字出現的次數。例如:給定 N=100

1021 個位數統計 15 分

給定一個 k 位整數 N=d​k−1​​10​k−1​​+⋯+d​1​​10​1​​+d​0​​ (0≤d​i​​≤9, i=0,⋯,k−1, d​k−1​​>0),請編寫程式統計每種不同的個位

1021 個位數統計 15 分

題目連結:1021 個位數統計 (15 分)   這道題目比較簡單,建立map<char,int>對映即可,由於map中的鍵值按照升序排列,正好符合題意,統計完畢輸出即可。   1 #include <bits/stdc++.h> 2 using

ACM選票統計C語言

2016年7月25日  選票統計 Time Limit: 1000MS Memory limit: 65536K 題目描述 某校學生會主席由全校學生投票選舉產生,共有m名候選人報名參選,編號為1到m(0<m<1000

【PAT】1021 個位數統計 15 分

1021 個位數統計 (15 分) 給定一個 k 位整數 N=d​k−1​​10​k−1​​+⋯+d​1​​10​1​​+d​0​​ (0≤d​i​​≤9, i=0,⋯,k−1, d​k−1​​>0),請編

PAT乙級1021C語言-個位數統計 (15)

給定一個k位整數N = dk-1*10k-1 + ... + d1*101 + d0 (0<=di<=9, i=0,...,k-1, dk-1>0),請編寫程式統計每種不同的個位數字出現的次數。例如:給定N = 100311,則有2個0,3個1,和1個

C語言個位數統計

給定一個k位整數N = dk-1*10k-1+ ... + d1*101+ d0(0<=di<=9, i=0,...,k-1, dk-1>0),請編寫程式統計每種不同的個位數字出現的次數。例如:給定N = 100311,則有2個0,3個1,和1個3。 輸入格式: 每個輸入包含1個測

統計一個字串中單詞的個數C語言

#include<stdio.h>  #include<stdlib.h>  int main()  {     int num = 0, word = 0;     char *p = NULL;     p = (char *)malloc(sizeof(char)*100);  

思路+程式碼 1042 字元統計 20 分C語言

思路:這道題統計數量最多的字母,那麼我們可以將字母轉化為數字,如果小寫字母,就減去‘a',如果大寫字母減去‘A’,將轉換之後的字母存入陣列,之後比較大小,詳情見程式碼。 1042 字元統計 (20 分) 請編寫程式,找出一段給定文字中出現最頻繁的那個英文字母。 輸入

自己主動化測試程序之中的一個自己定義鍵盤的模擬測試程序C語言

nds per oid 尾指針 應用 tro scan number 實現 一、測試程序編寫說明 我們做的終端設備上運行的是QT應用程序。使用自己定義的鍵盤接口。經過測試人員長時間的人機交互測試,來確認系統的功能是否滿足需求。如今須要編寫一個自己主動化

3、簡單計算機程序C語言

can ext class log cnblogs c語言 輸入 char 計算機程序 簡單計算機程序 程序代碼: /* 2017年6月30日15:35:14 功能:計算器程序,輸入兩個運算數與四則運算符,輸出計算結果 */ # include <stdio.h

自動生成小學生四則運算C語言

.html .com 它的 百度 http htm log hub .cn 我寫的這個自動生成小學生四則運算的代碼是根據我在百度上看到的一篇博客改的,地址為http://www.cnblogs.com/ys1101/p/4368103.html。它的功能不夠完整,只有整數的

終於把貪食蛇弄出來了C語言

inf pos 容易 發布 com 初學 總結 info src 真不容易,小小的貪食蛇,居然這麽有難度。 從圖片可以看出,卡頓,閃爍比較嚴重,而且比較簡陋。 初學者,做成這樣,我覺得還算不錯,恩繼續學習。 額,代碼先不貼了,先總結一下,整理好之後再發布終於把貪食蛇弄出來