Προβλημητάκι σε C

...του ubuntu και έργων ΕΛ/ΛΑΚ (Έργα-Οδηγοί-Προτάσεις)

Συντονιστής: konnn

Προβλημητάκι σε C

Δημοσίευσηαπό pc_magas » 25 Νοέμ 2009, 21:34

Έκανα τον εξής κώδικα για να εντοπίσω τους πρώτους αριθμούς σε ένα διάστημα [α,β]
Κώδικας: Επιλογή όλων
#include<stdio.h>
int prwtos(int a);
int prwtos(int k)
{int i;/*Orismos metriti*/
for(i=2;i<=k;i++)
{if(k%i==0){return 0;}/*Afou kanenas diairetis den einai megalyteros tou k/2 ara o prwtos tha diaireitai to polu me k/2*/}
return 1;}
void main()
{int begin,end,i;/*Orismos arhis kai telous tou diastimatos kai enos metriti i*/
do{
printf("Dwse ton prwto arithmo:");
scanf(" %d",&begin);
printf("Dwse ton deutero arithmo:");
scanf(" %d",&end);
}while(begin>end);
for(i=begin;i<=end;i++)
{if(prwtos(i)){printf("%d\n",i);}}
}

Αλλά σε μια εκτέλεση εμφανίζει:
Κώδικας: Επιλογή όλων
pc_magas@pcmagas:~$ ~/askisi4
Dwse ton prwto arithmo:5
Dwse ton deutero arithmo14

Ενώ έπρεπε να εμφανίζει:
Κώδικας: Επιλογή όλων
pc_magas@pcmagas:~$ ~/askisi4
Dwse ton prwto arithmo:5
Dwse ton deutero arithmo14
5 7 11 13
My blog|Κυπριακή Κοινότητα Ελευθέρου Λογισμικού Λογισμικού ανοικτού Κώδικα
Γνώσεις Linux:Ποτέ αρκετές|Προγραμματισμός: Php, javascript, nodejs, python, bash |Aγγλικά:Καλά
Οι υπολογιστές μου:
Spoiler: show
Ubuntu 16.04 64 bit σεIntel(R) Pentium(R) CPU G4400 @ 3.30GHz, 16Gib Ram, 500Gib Hard Disk, και κάρτα γραφικών Nvidia Geforce GT610
Lubuntu 14.04 σε Dell Inspiron mini 10(1010) intel Atom Z500 1Gb ram και gma500 (εδώθη σε άλλον)
Kubuntu 16.04 Lenovo G70 Intel i5 Nvidia Grapgics Card, Intel Graphics card (έχει 2) με Nouveau, 16Gb RAM, 126GB SSD Σκληρό Δίσκο
Άβαταρ μέλους
pc_magas
powerTUX
powerTUX
 
Δημοσιεύσεις: 2599
Εγγραφή: 12 Απρ 2009, 18:55
Τοποθεσία: Αχαρναί Αττικής
Launchpad: pc_magas
IRC: pc_magas
Εκτύπωση

Re: Προβλημητάκι σε C

Δημοσίευσηαπό theseas » 12 Ιαν 2010, 09:34

Έτσι δουλεύει, η for μέσα στην συνάρτηση prwtos δεν χρειάζεται!!!

Κώδικας: Επιλογή όλων

#include <stdio.h>

int is_prime(int);

int main()
{
int first_num, last_num;
do
{
printf("Enter first number: ");
scanf("%d", &first_num);
printf("Enter last number: ");
scanf("%d", &last_num);

if(first_num>last_num || first_num<2)
puts("Wrong integers!!!\a\n");
}while(first_num>last_num || first_num<2);

int i, col;
col = 1;

for(i = first_num; i<=last_num; ++i)
{
if(is_prime(i))
{
printf("%d\t",i);
if(col%5==0)
printf("\n");
++col;
}
}

puts("\n");
return 0;
}

int is_prime(int num)
{
int i;
for(i=2; i<num; ++i)
{
if(num%i==0)
return 0;
}
return 1;
}


:oops:
*edit: Ωχ έχεις δίκιο συγνώμη, μπερδεύτηκα και το έφτιαξα να τυπώνει τους μονούς(έφταιγε η έλλειψη καφεΐνης :lol:)!!!
το διόρθωσα και τώρα δουλεύει κανονικά! :D
Τελευταία επεξεργασία από theseas και 13 Ιαν 2010, 14:12, έχει επεξεργασθεί 2 φορά/ες συνολικά
sɐəsəɥʇ ®
Γνώσεις ⇛ Linux: Μέτριο ┃ Προγραμματισμός: Ναι ┃ Αγγλικά: Καλά
Λειτουργικό: Ubuntu 9.10
Προδιαγραφές ⇛ Επεξεργαστής: Intel core 2 Duo E8400 │ Μνήμη: 2GB│ Κάρτα Γραφικών: Intel GMA 3100 │ Κάρτα Ήχου: Creative Audigy LS │ Οθόνη & Ανάλυση: 15 ίντσες 1024x768
Άβαταρ μέλους
theseas
babeTUX
babeTUX
 
Δημοσιεύσεις: 14
Εγγραφή: 13 Αύγ 2009, 16:13
Τοποθεσία: Αθήνα, Πετρούπολη
IRC: theseas
Εκτύπωση

Re: Προβλημητάκι σε C

Δημοσίευσηαπό pc_magas » 12 Ιαν 2010, 23:16

Ρε φίλαράκι τους πρώτους πρέπει να εμφανίζει και μέχρι να δωθεί λυση βρίκα άλλο τρόπο αλλά ευχαριστώ πάντος
My blog|Κυπριακή Κοινότητα Ελευθέρου Λογισμικού Λογισμικού ανοικτού Κώδικα
Γνώσεις Linux:Ποτέ αρκετές|Προγραμματισμός: Php, javascript, nodejs, python, bash |Aγγλικά:Καλά
Οι υπολογιστές μου:
Spoiler: show
Ubuntu 16.04 64 bit σεIntel(R) Pentium(R) CPU G4400 @ 3.30GHz, 16Gib Ram, 500Gib Hard Disk, και κάρτα γραφικών Nvidia Geforce GT610
Lubuntu 14.04 σε Dell Inspiron mini 10(1010) intel Atom Z500 1Gb ram και gma500 (εδώθη σε άλλον)
Kubuntu 16.04 Lenovo G70 Intel i5 Nvidia Grapgics Card, Intel Graphics card (έχει 2) με Nouveau, 16Gb RAM, 126GB SSD Σκληρό Δίσκο
Άβαταρ μέλους
pc_magas
powerTUX
powerTUX
 
Δημοσιεύσεις: 2599
Εγγραφή: 12 Απρ 2009, 18:55
Τοποθεσία: Αχαρναί Αττικής
Launchpad: pc_magas
IRC: pc_magas
Εκτύπωση

Re: Προβλημητάκι σε C

Δημοσίευσηαπό kon_nos » 13 Ιαν 2010, 01:45

Κώδικας: Επιλογή όλων
for(i=2;i<=k;i++)
{
if(k%i==0){return 0;}/*Afou kanenas diairetis den einai megalyteros tou k/2 ara o prwtos tha diaireitai to polu me k/2*/
}

Δοκίμασε k=7 που είναι πρώτος αριθμός και δες το αποτέλεσμα. Το καλύτερο εργαλείο του debugging είναι η εκτύπωση ;) . Πρόσθεσε και μια scanf για να πηγαίνει βήμα βήμα.
Εγκατάσταση των OpenGL headers σε Ubuntu
«Tων πολλών επιδίωξη η Ηδονή, των εκλεκτών η Δόξα, των δ’ επιλέκτων η Αρετή» - Αριστοτέλης
Άβαταρ μέλους
kon_nos
dudeTUX
dudeTUX
 
Δημοσιεύσεις: 382
Εγγραφή: 09 Νοέμ 2008, 01:11
Τοποθεσία: Αθήνα, Νέο Φάληρο
IRC: kon_nos
Εκτύπωση

Re: Προβλημητάκι σε C

Δημοσίευσηαπό giannosfor » 02 Μάιος 2011, 13:39

Και αυτό κάνει
Κώδικας: Επιλογή όλων
#include <stdio.h>

int main()
{

int frs,scd,nmb;

printf("Enter yout first number:");
scanf("%d",&frs);
printf("Enter yout second number:");
scanf("%d",&scd);

frs += (frs + 1)%2;
for (nmb=frs; nmb<=scd; nmb+=2)
printf("%d ",nmb);

return 0;
}
1 Γνώσεις Linux: Καθόλου ┃ Προγραμματισμού: Ικανοποιητικό ┃ Αγγλικών: Ικανοποιητικό
2 Ubuntu 12.04 precise 3.2.0-58-generic 32bit (en_US.UTF-8, Unity ubuntu), Ubuntu 3.2.0-57-generic, Microsoft Windows XP Professional
3 Intel Core2 Duo CPU E4600 2.40GHz ‖ RAM 2012 MiB ‖ ASUS INC. P5Q - � P5Q
4 nVidia G94 [GeForce 9600 GT] [10de:0622] {nvidia}
5 eth0: Qualcomm Atheros AR8121/AR8113/AR8114 Gigabit or Fast Ethernet [1969:1026] (rev b0) ⋮ wlan0: 148f:3070 Ralink Technology, Corp. RT2870/RT3070 Wireless Adapter
Άβαταρ μέλους
giannosfor
punkTUX
punkTUX
 
Δημοσιεύσεις: 297
Εγγραφή: 24 Απρ 2011, 20:24
Τοποθεσία: Ηράκλειο
Εκτύπωση

Re: Προβλημητάκι σε C

Δημοσίευσηαπό giannosfor » 02 Μάιος 2011, 13:46

pc_magas έγραψε:
Ενώ έπρεπε να εμφανίζει:
Κώδικας: Επιλογή όλων
pc_magas@pcmagas:~$ ~/askisi4
Dwse ton prwto arithmo:5
Dwse ton deutero arithmo14
5 7 11 13

Ίσως δε κατάλαβα καλά τον 9 δέν πρέπει να τον εμφανίσει? :?:

Τι χαζός,αυτό πρέπει να κάνει :thumbup:
Κώδικας: Επιλογή όλων

#include <stdio.h>

int main()
{

int end,count;

do{
printf("Enter yout first number:");
scanf("%d",&count);
} while (count < 2);
do{
printf("Enter yout second number:");
scanf("%d",&end);
} while (end < count);
while(count++ <= end)
if ((count%2 != 0) || count == 2)
if (count%3 != 0 || count == 3)
if (count%5 != 0 || count == 5)
if (count%7 != 0 || count == 7)
printf("%d ",count);

return 0;
}
Τελευταία επεξεργασία από giannosfor και 06 Μάιος 2011, 23:47, έχει επεξεργασθεί 1 φορά/ες συνολικά
1 Γνώσεις Linux: Καθόλου ┃ Προγραμματισμού: Ικανοποιητικό ┃ Αγγλικών: Ικανοποιητικό
2 Ubuntu 12.04 precise 3.2.0-58-generic 32bit (en_US.UTF-8, Unity ubuntu), Ubuntu 3.2.0-57-generic, Microsoft Windows XP Professional
3 Intel Core2 Duo CPU E4600 2.40GHz ‖ RAM 2012 MiB ‖ ASUS INC. P5Q - � P5Q
4 nVidia G94 [GeForce 9600 GT] [10de:0622] {nvidia}
5 eth0: Qualcomm Atheros AR8121/AR8113/AR8114 Gigabit or Fast Ethernet [1969:1026] (rev b0) ⋮ wlan0: 148f:3070 Ralink Technology, Corp. RT2870/RT3070 Wireless Adapter
Άβαταρ μέλους
giannosfor
punkTUX
punkTUX
 
Δημοσιεύσεις: 297
Εγγραφή: 24 Απρ 2011, 20:24
Τοποθεσία: Ηράκλειο
Εκτύπωση

Re: Προβλημητάκι σε C

Δημοσίευσηαπό pc_magas » 02 Μάιος 2011, 16:30

Πωωω από το πρώτο εξάμηνο έχω να δω αυτό το post καλά πόσο κακογραμμένο κώδικα έκανα?
My blog|Κυπριακή Κοινότητα Ελευθέρου Λογισμικού Λογισμικού ανοικτού Κώδικα
Γνώσεις Linux:Ποτέ αρκετές|Προγραμματισμός: Php, javascript, nodejs, python, bash |Aγγλικά:Καλά
Οι υπολογιστές μου:
Spoiler: show
Ubuntu 16.04 64 bit σεIntel(R) Pentium(R) CPU G4400 @ 3.30GHz, 16Gib Ram, 500Gib Hard Disk, και κάρτα γραφικών Nvidia Geforce GT610
Lubuntu 14.04 σε Dell Inspiron mini 10(1010) intel Atom Z500 1Gb ram και gma500 (εδώθη σε άλλον)
Kubuntu 16.04 Lenovo G70 Intel i5 Nvidia Grapgics Card, Intel Graphics card (έχει 2) με Nouveau, 16Gb RAM, 126GB SSD Σκληρό Δίσκο
Άβαταρ μέλους
pc_magas
powerTUX
powerTUX
 
Δημοσιεύσεις: 2599
Εγγραφή: 12 Απρ 2009, 18:55
Τοποθεσία: Αχαρναί Αττικής
Launchpad: pc_magas
IRC: pc_magas
Εκτύπωση

Re: Προβλημητάκι σε C

Δημοσίευσηαπό giannosfor » 02 Μάιος 2011, 20:33

Έτυχα να δω το post σου γι'αυτό απάντησα,έχεις δίκιο τώρα είναι δώρο άδωρο.
1 Γνώσεις Linux: Καθόλου ┃ Προγραμματισμού: Ικανοποιητικό ┃ Αγγλικών: Ικανοποιητικό
2 Ubuntu 12.04 precise 3.2.0-58-generic 32bit (en_US.UTF-8, Unity ubuntu), Ubuntu 3.2.0-57-generic, Microsoft Windows XP Professional
3 Intel Core2 Duo CPU E4600 2.40GHz ‖ RAM 2012 MiB ‖ ASUS INC. P5Q - � P5Q
4 nVidia G94 [GeForce 9600 GT] [10de:0622] {nvidia}
5 eth0: Qualcomm Atheros AR8121/AR8113/AR8114 Gigabit or Fast Ethernet [1969:1026] (rev b0) ⋮ wlan0: 148f:3070 Ralink Technology, Corp. RT2870/RT3070 Wireless Adapter
Άβαταρ μέλους
giannosfor
punkTUX
punkTUX
 
Δημοσιεύσεις: 297
Εγγραφή: 24 Απρ 2011, 20:24
Τοποθεσία: Ηράκλειο
Εκτύπωση

Re: Προβλημητάκι σε C

Δημοσίευσηαπό Star_Light » 04 Μάιος 2011, 05:01

pc_magas έγραψε:Πωωω από το πρώτο εξάμηνο έχω να δω αυτό το post καλά πόσο κακογραμμένο κώδικα έκανα?


Με τον καιρο και την εξασκηση γινεσαι παντα καλυτερος!!!!!!
Η C ειναι "βαρυα" γλωσσα... μην κατηγορεις τον εαυτο σου!!!
Γνώσεις ⇛ Linux: Βασικές ┃ Προγραμματισμός: Δέν θέλω μεροκάματο , θέλω C και κακο θάνατο! ┃ Αγγλικά: Lower
Λειτουργικό ⇛ Ubuntu 10.10 σε Dual Boot με Windows 7
Προδιαγραφές ⇛ Επεξεργαστής : Intel(R) Core(TM) i3 CPU 540 @3.07Ghz (64bit)
RAM : Kingston 2GB
HDD : Coreshare 500GB
Κάρτα Γραφικών : Intel Corporation Core Processor Integrated Graphics Controller(rev 18) (prog-if 00 [VGA controller]) [8086:0042]
Star_Light
superbTUX
superbTUX
 
Δημοσιεύσεις: 2787
Εγγραφή: 01 Μάιος 2010, 21:07
Τοποθεσία: Αθήνα
IRC: Star_Light
Εκτύπωση

Re: Προβλημητάκι σε C

Δημοσίευσηαπό pc_magas » 04 Μάιος 2011, 12:17

@Star_Light
Επειδή βλέπω διαφορά τότε και διαφορά τώρα γι αυτό το λέω....
My blog|Κυπριακή Κοινότητα Ελευθέρου Λογισμικού Λογισμικού ανοικτού Κώδικα
Γνώσεις Linux:Ποτέ αρκετές|Προγραμματισμός: Php, javascript, nodejs, python, bash |Aγγλικά:Καλά
Οι υπολογιστές μου:
Spoiler: show
Ubuntu 16.04 64 bit σεIntel(R) Pentium(R) CPU G4400 @ 3.30GHz, 16Gib Ram, 500Gib Hard Disk, και κάρτα γραφικών Nvidia Geforce GT610
Lubuntu 14.04 σε Dell Inspiron mini 10(1010) intel Atom Z500 1Gb ram και gma500 (εδώθη σε άλλον)
Kubuntu 16.04 Lenovo G70 Intel i5 Nvidia Grapgics Card, Intel Graphics card (έχει 2) με Nouveau, 16Gb RAM, 126GB SSD Σκληρό Δίσκο
Άβαταρ μέλους
pc_magas
powerTUX
powerTUX
 
Δημοσιεύσεις: 2599
Εγγραφή: 12 Απρ 2009, 18:55
Τοποθεσία: Αχαρναί Αττικής
Launchpad: pc_magas
IRC: pc_magas
Εκτύπωση

Επόμενο

Επιστροφή στο Ανάπτυξη Λογισμικού / Αλγόριθμοι