2014-03-30 27 views
-1

對於彩票遊戲,我需要顯示每次用戶在屏幕上輸入一組新數字時輸入的數字的頻率數字1-42例如,它可能會顯示在c編程中我試圖顯示用戶輸入某個數字的次數,

第1號已被選定x次第7號已被選定x次第28號已被選擇x次等等,這必須在一個函數中完成這裏是我的代碼請幫助謝謝

void numberFrequency(int *nums,int *frequency) 

{ 

int i; 
    int j; 
    int temp; 
    int freq[42]={1,2,3,4,5,6,7,8,9,10,11, 
        12,13,14,15,16,17,18,19, 
        20,21,22,23,24,25,26,27, 
       28,29,30,31,32,33,34,35, 
       36,37,38,39,40,41,42}; 

    for (i=0;i<NUMS;i++) 
    { 
     for (j=0;j<FREQUENCY;j++) 
     { 
      if (*(nums+i)==j+1); 
      { 
       temp = *(frequency+j); 
       temp++; 
       *(frequency+j) = temp; 
      } 
     } 
    } 
    for(j=0;j<FREQUENCY;j++) 
    { 
     if (*(frequency+j)>=1) 
     { 
      printf("\nThe number %d was entered %d times ",j+1,*(frequency+j)); 
     } 
    }   
} 
+1

對你有好處!你的問題是? –

回答

0

此代碼假定輸入有效。 此代碼將打印每個數字被選中的次數。

void numberFrequency(int *nums) 
{ 
    int i; 
    int freq[42]; 

    for(i=0;i<42;i++) 
     freq[i] = 0;//init counters to 0; 

    for (i=0;i<NUMS;i++) 
     freq[nums[i]]++; 

    for(i=0;i<42;i++) 
     printf("The num:%d entered $d times",i+1,freq[i]); 
} 
+0

謝謝你真的幫助,但它似乎正在工作正常我怎麼做錯了輸出,如果我輸入1,2,3,4,5,6然後4,5,6,7,8,9,是數字1輸入0次數字2輸入0次數字3輸入0次數字4輸入0次數字5輸入1次數字6輸入1次數字7輸入1次數字8輸入1次數字9輸入1次數字10輸入1次任何想法如何解決這個歡呼:) – user3438340

+0

你怎麼得到NUMS數組? 裏面有什麼? –

+0

NUMS是大小爲6的一個全局變量(#定義NUMS 6),這是我的代碼的#include的第一部分 的#define NUMS 6 //函數採取從用戶 空隙通過myNumbers輸入(INT * NUMS){ \t \t int i; \t printf(「請輸入您的幸運數字\ n」); \t \t 爲(I = 0; I 42) \t { \t \t 的printf \t( 「您輸入的編號超出範圍的\ n」); \t \t printf(「請輸入1到42之間的數字\ n」); \t \t i--; \t} \t \t} \t } //最終通過myNumbers功能 – user3438340

相關問題