Προς το περιεχόμενο

διαφορά unsigned long long από unsigned long


paramore

Προτεινόμενες αναρτήσεις

Δημοσ.

καλημέρα, παιδιά!

 

έχω αυτό το πρόγραμμα:

 

#include<stdio.h>

#include<stdlib.h>

 

 

void parag_prw(unsigned long p,unsigned long a );

void prwtos(unsigned long a, unsigned long arx);

 

int main()

{

 

unsigned long a;

 

printf("\n Enter A Positive Number:");

scanf("%lu", &a);

printf("\n ");

 

 

prwtos(a, 1);

 

if (a==0)

{

printf(" 0 \n \n");

}

else if (a==1)

{

printf(" 1 \n \n");

}

else

{

printf("\b \n \n ");

}

system ("pause");

return (1);

 

}

 

void prwtos(unsigned long a, unsigned long arx)

{

 

unsigned long m1, m2;

char prw;

for(m1 = arx; m1<=a; m1++)

{

for (m2 = 2; m2< m1; m2++)

{

 

if ( m1 % m2!=0){

prw='t';

}

else{

prw='f';

break;

}

 

}

 

if (prw =='t' || m1 ==2)

{

parag_prw(m1,a); /*This Calls The Function factorcheck()*/

break;

} number*/

 

}

 

}

 

void parag_prw(unsigned long p, unsigned long a)

{

unsigned long upol;

upol=a%p;

 

if (upol == 0)

{

printf("%lux", p);

prwtos((a/p), 1);

return;

}

else

prwtos(a, p+1);

 

}

 

όταν το τρέχω με τύπο δεδομένων unsigned long μου βγάζει μια χαρά τα αποτελέσματα όμως όταν βάζω unsigned long long μου βγάζει άκυρα πράγματα. Στην άσκηση που έχω πρέπει τα δεδομένα μου να είναι σε long long.. μήπως έχετε ιδέα τι πρέπει να κάνω?

Δημοσ.

Μπορείς να διαπιστώσεις την διαφορά εσύ ο ίδιος τρέχοντας ένα πρόγραμμα όπως:

 

>

#include <stdio.h>

int main(void) {
       printf ("Unsigned long long is: %d Bytes long\n", sizeof(unsigned long long));
       printf ("Unsigned long is: %d Bytes long\n", sizeof(unsigned long));

       return 0;
}

Δημοσ.

κατ'αρχας ευχαριστώ για την απάντηση! Βασικά το ξέρω πως για unsigned long έχουμε 32bit και για unsigned long long έχουμε 64 bit αλλά δεν καταλαβαίνω τι πρέπει να αλλάξω για να λειτουργήσει σωστά το πρόγραμμα..

Αρχειοθετημένο

Αυτό το θέμα έχει αρχειοθετηθεί και είναι κλειστό για περαιτέρω απαντήσεις.

  • Δημιουργία νέου...