2013-08-20 4 views
7

यह आउटपुट मैं प्राप्त करने के लिए कोशिश कर रहा हूँ है:उपयोग रैंड() विभाजन तालिका में संख्या उत्पन्न करने के लिए

(बेतरतीब var1)/(बेतरतीब var2) =
उत्तर: (वर ans)

मैंने पहले ही जोड़, घटाव और गुणा किया है लेकिन मुझे विभाजन के साथ कठिनाई का सामना करना पड़ा क्योंकि मुझे विभाजन के लिए सटीक लाभांश और विभाजक की आवश्यकता है ताकि जवाब देना मुश्किल न हो।

उदाहरण:

40/5 =
उत्तर: 8

नहीं इस एक:

7/5 =
उत्तर: नाव मूल्य

int x,num,num2,ans,quo,score=0; 
time_t t; 

clrscr(); 

for(x=0;x<5;x++) 
{ 
    srand((unsigned) time(&t)); 
    num2=rand()%10; 
    quo=num/num2; 

    if(num2==1) 
    { 
     num=rand()%9; 
    } 
    else if(num2==2) 
    { 
     num=2 + (2 * rand()) %18; //this should return a value divisible by 2(ranges 0-18) 
    } 
    else if(num2==3) 
    { 
     num=rand()% //this should return a value divisible by 3 only (ranges 0-27) 
    } 
    else if(num2==4) 
    { 
     num=rand()% //this should return a value divisible by 4 only (ranges 0-36) 
    } 
    else if(num2==5) 
    { 
     num=rand()% //this should return a value divisible by 5 only (ranges 0-45) 
    } 
    else if(num2==6) 
    { 
     num=rand()% //this should return a value divisible by 6 only (ranges 0-54) 
    } 
    else if(num2==7) 
    { 
     num=rand()% //this should return a value divisible by 7 only (ranges 0-63) 
    } 
    else if(num2==8) 
    { 
     num=rand()% //this should return a value divisible by 8 only (ranges 0-72) 
    } 
    else if(num2==9) 
    { 
     num=rand()% //this should return a value divisible by 9 only (ranges 0-81) 
    } 
    else if(num2==10) 
    { 
     num=rand()% //this should return a value divisible by 10 only (ranges 0-90) 
    } 
    else 
    { 
    } 

    gotoxy(30,14); 
    printf("\n%d/%d = ",num,num2); 
    printf("\nAns: "); 
    scanf("%d",&ans); 
} 
+5

भागो यह पीछे की ओर? दिया गया x/y = z, y और z उत्पन्न करें, फिर x के लिए हल करें। – VolatileDream

+1

हाँ, कभी-कभी थोड़ा सा सामान्य ज्ञान एक लंबा रास्ता तय कर सकता है। – dtech

उत्तर

2

आप

float quo=(float)num/num2; 
printf("%f\n", quo); 

करते हैं और सटीक परिणाम मुद्रित

यदि आप यादृच्छिक संख्या कि खुद के बीच divideable हैं तो आप कुछ और चाहते हैं कर सकते हैं:यहाँ मेरी कोड है।

भी num/num2; से पहले num शुरू नहीं करते हैं और आप यह नहीं देखते हैं कि num2 शून्य है तो आप फेंक सकते हैं।

finaaly आप की तरह

num2=rand()%10; 
num=rand(); 
while((float)num/num2 != (float)(num/num2)) 
    num=rand(); 
int quo=num/num2; 

कुछ कर सकते हैं, तो absolutly केवल divideable जोड़ों मापांक ऑपरेटर के साथ

+0

ठीक है .. मैं इसे आज़माउंगा .. आपको बहुत धन्यवाद – Hasmine

0

टेस्ट स्वीकार कर सकते हैं:

int test, result; 

test = 6%3; //test == 0 
if(test == 0) result = 6/3; //test passes, assignment made 

test = 7%3; //test == 1 
if(test == 0) result = 7/3; //test fails, assignment not made 

यह पूर्णांक मूल्यों में जिसके परिणामस्वरूप अनुपात की गारंटी देगा।

इसके अलावा , एक यादृच्छिक जनरेटर समारोह चीजों को आसान बना सकता है, कुछ इस तरह:

int randGenerator(int min, int max) 
{ 
    int random, trying; 

    trying = 1;   
    while(trying) 
    { 
     srand(clock()); 
     random = (rand()/32767.0)*(max+1); 
     (random >= min) ? (trying = 0) : (trying = 1); 
    } 
    return random; 
} 
+0

धन्यवाद .. धन्यवाद .. मैं इसे आजमाउंगा – Hasmine

+0

आपका स्वागत है, आप शायद एक साधारण यादृच्छिक जनरेटर लिखने का प्रयास कर सकते हैं, अधिकतम और न्यूनतम के साथ कहें जो पूर्णांक थूक जाएगा। मैं इस समारोह के साथ उपरोक्त मेरा उत्तर संपादित करूंगा। – ryyker

3

तुम सिर्फ एक यादृच्छिक परिणाम सवाल

denominator = 14 (randomly chosen) 
result = 21 (randomly chosen) 

numerator = denominator * result 

आप तो ले सकते हैं और बना सकते हैं पूछें कि numerator/denominator

+0

ओह मैं देखता हूं .. ठीक है मैं संशोधित करने की कोशिश करूंगा .. धन्यवाद – Hasmine

1

बस:

num2=rand()%9+1; 
quo=rand()%10; 
num = quo * num2; 
printf("\n%d/%d = ",num,num2); 

इसके अलावा, आप लूप के से पहले करने के लिए srand() कॉल बढ़ना चाहिए। अन्यथा अगर कोई प्रश्न बहुत जल्दी प्रश्न का उत्तर देता है तो उन्हें फिर से वही प्रश्न मिल जाएगा।

0

जवाब:

पूर्णांक एक्स, संख्या, NUM2, ans, यथास्थिति, स्कोर = 0; time_t टी;

clrscr(); srand ((हस्ताक्षरित) समय (& टी));

for(x=0;x<5;x++) 
{ 
num2=rand()%9; 

if(num2==1) 
{ 
srand((unsigned) time(&t)); 
num=rand()%9; 
} 
else if(num2==2) 
{ 
srand((unsigned) time(&t)); 
num=(rand()%9+1)*2; 
} 
else if(num2==3) 
{ 
    srand((unsigned) time(&t)); 
    num=(rand()%9+1)*3; 
} 
else if(num2==4) 
{ 
    srand((unsigned) time(&t)); 
    num=(rand()%9+1)*4; 
} 
else if(num2==5) 
{ 
    srand((unsigned) time(&t)); 
    num=(rand()%9+1)*5; 
} 
else if(num2==6) 
{ 
    srand((unsigned) time(&t)); 
    num=(rand()%9+1)*6; 
} 
else if(num2==7) 
{ 
    srand((unsigned) time(&t)); 
    num=(rand()%9+1)*7; 
} 
else if(num2==8) 
{ 
    srand((unsigned) time(&t)); 
    num=(rand()%9+1)*8; 
} 
else if(num2==9) 
{ 
    srand((unsigned) time(&t)); 
    num=(rand()%9+1)*9; 
} 
else if(num2==10) 
{ 
    srand((unsigned) time(&t)); 
    num=(rand()%9+1)*10; 
} 
else 
{ 
    clrscr(); 
    printf(""); 
} 

quo=num/num2; 
clrscr(); 
gotoxy(30,14); 
printf("\n%d/%d = ",num,num2); 
printf("\nAns: "); 
scanf("%d",&ans); 

}

संबंधित मुद्दे