Τα πάντα για την C

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

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

Re: Τα πάντα για την C/C++

Δημοσίευσηαπό migf1 » 13 Ιούλ 2011, 05:14

Μάλλον χρησιμοποιείς την συνάρτηση: eoept πριν από το σημείο που έχεις γράψει τον κώδικά της
Go under the hood with C: Pointers, Strings, Linked Lists
Άβαταρ μέλους
migf1
powerTUX
powerTUX
 
Δημοσιεύσεις: 2082
Εγγραφή: 03 Ιουν 2011, 16:32
Εκτύπωση

Re: Τα πάντα για την C/C++

Δημοσίευσηαπό clepto » 13 Ιούλ 2011, 14:04

όχι...όλες στο τέλος τις καλώ
1 Γνώσεις Linux: Ικανοποιητικό ┃ Προγραμματισμού: Ικανοποιητικό ┃ Αγγλικών: Ικανοποιητικό
2 Ubuntu 13.04 raring 3.8.0-30-generic 64bit (en_US.UTF-8, Unity ubuntu), Ubuntu 3.8.0-19-generic, Windows 7
3 Intel Core i7-3537U CPU @ 2.00GHz ‖ RAM 3840 MiB ‖ ASUS K56CB
4 Intel 3rd Gen Core processor Graphics Controller [8086:0166] {i915}
5 wlan0: Atheros Inc. AR9485 Wireless Network Adapter [168c:0032] (rev 01) ⋮ eth0: Realtek RTL8111/8168 PCI Express Gigabit Ethernet controller [10ec:8168] (rev 0a)
clepto
antiwinTUX
antiwinTUX
 
Δημοσιεύσεις: 4102
Εγγραφή: 07 Ιαν 2010, 16:27
Τοποθεσία: Πάτρα
Launchpad: christriant
IRC: Clepto
Εκτύπωση

Re: Τα πάντα για την C/C++

Δημοσίευσηαπό migf1 » 13 Ιούλ 2011, 14:54

Μήπως έχεις ορθογραφικό λάθος στο όνομά της σε κάποια από τις κλήσεις που της κάνεις;
Go under the hood with C: Pointers, Strings, Linked Lists
Άβαταρ μέλους
migf1
powerTUX
powerTUX
 
Δημοσιεύσεις: 2082
Εγγραφή: 03 Ιουν 2011, 16:32
Εκτύπωση

Re: Τα πάντα για την C/C++

Δημοσίευσηαπό stamatiou » 13 Ιούλ 2011, 15:01

Παιδιά, έχω αυτό το error
Κώδικας: Επιλογή όλων
19:1: warning: format ‘%s’ expects type ‘char *’, but argument 3 has type ‘int’

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

main()
{
int kilos;
int money;
int money_to_pay;
char currency;
printf("What is the currency?\n");
scanf("%s",&currency);
fflush(stdin);
printf("How many kilos is your product?");
scanf("%d",&kilos);
fflush(stdin);
printf("How much does a kilo cost?");
scanf("%d",&money);
fflush(stdin);
money_to_pay = kilos * money;
printf("You will pay %d %s",money_to_pay,currency);
}

Τι συμβαίνει;
stamatiou
daemonTUX
daemonTUX
 
Δημοσιεύσεις: 947
Εγγραφή: 25 Ιουν 2010, 20:23
Εκτύπωση

Re: Τα πάντα για την C/C++

Δημοσίευσηαπό clepto » 13 Ιούλ 2011, 15:02

όχι...θα φτιάξω μερικά πράγματα και θα ποστάρω τον κώδικα σε καινούργιο νήμα

@stamatiou
αντικατέστησε το %s με %c
1 Γνώσεις Linux: Ικανοποιητικό ┃ Προγραμματισμού: Ικανοποιητικό ┃ Αγγλικών: Ικανοποιητικό
2 Ubuntu 13.04 raring 3.8.0-30-generic 64bit (en_US.UTF-8, Unity ubuntu), Ubuntu 3.8.0-19-generic, Windows 7
3 Intel Core i7-3537U CPU @ 2.00GHz ‖ RAM 3840 MiB ‖ ASUS K56CB
4 Intel 3rd Gen Core processor Graphics Controller [8086:0166] {i915}
5 wlan0: Atheros Inc. AR9485 Wireless Network Adapter [168c:0032] (rev 01) ⋮ eth0: Realtek RTL8111/8168 PCI Express Gigabit Ethernet controller [10ec:8168] (rev 0a)
clepto
antiwinTUX
antiwinTUX
 
Δημοσιεύσεις: 4102
Εγγραφή: 07 Ιαν 2010, 16:27
Τοποθεσία: Πάτρα
Launchpad: christriant
IRC: Clepto
Εκτύπωση

Re: Τα πάντα για την C/C++

Δημοσίευσηαπό stamatiou » 13 Ιούλ 2011, 16:21

clepto έγραψε:όχι...θα φτιάξω μερικά πράγματα και θα ποστάρω τον κώδικα σε καινούργιο νήμα

@stamatiou
αντικατέστησε το %s με %c

Ναι αλλά αυτό λογικά δεν θα πάρει μόνο τον πρώτο χαρακτήρα;
stamatiou
daemonTUX
daemonTUX
 
Δημοσιεύσεις: 947
Εγγραφή: 25 Ιουν 2010, 20:23
Εκτύπωση

Re: Τα πάντα για την C/C++

Δημοσίευσηαπό clepto » 13 Ιούλ 2011, 16:38

δε ξέρω με σιγουριά για να σου απαντήσω
άμα αποτελείτε πάνω από μια λέξεις τότε πρέπει να χρησιμοποιήσεις την fgets
Τελευταία επεξεργασία από clepto και 13 Ιούλ 2011, 16:39, έχει επεξεργασθεί 1 φορά/ες συνολικά
1 Γνώσεις Linux: Ικανοποιητικό ┃ Προγραμματισμού: Ικανοποιητικό ┃ Αγγλικών: Ικανοποιητικό
2 Ubuntu 13.04 raring 3.8.0-30-generic 64bit (en_US.UTF-8, Unity ubuntu), Ubuntu 3.8.0-19-generic, Windows 7
3 Intel Core i7-3537U CPU @ 2.00GHz ‖ RAM 3840 MiB ‖ ASUS K56CB
4 Intel 3rd Gen Core processor Graphics Controller [8086:0166] {i915}
5 wlan0: Atheros Inc. AR9485 Wireless Network Adapter [168c:0032] (rev 01) ⋮ eth0: Realtek RTL8111/8168 PCI Express Gigabit Ethernet controller [10ec:8168] (rev 0a)
clepto
antiwinTUX
antiwinTUX
 
Δημοσιεύσεις: 4102
Εγγραφή: 07 Ιαν 2010, 16:27
Τοποθεσία: Πάτρα
Launchpad: christriant
IRC: Clepto
Εκτύπωση

Re: Τα πάντα για την C/C++

Δημοσίευσηαπό migf1 » 13 Ιούλ 2011, 16:38

Αφού μόνον έναν χαρακτήρα το έχεις δηλωμένο το currency.

Άσχετο, τώρα που είναι νωρίς προσπάθησε να κάνεις συνήθειά σου την main να την δηλώνεις:
Κώδικας: Επιλογή όλων

int main( void )
όταν δεν τις περνάς command line arguments

ή

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

int main( int argc, char *argv[] )
όταν της περνάς command line arguments.

Και βάζε πάντα return 0 ή exit(0) πριν κλείσεις το τελικό της άγκιστρο ;)

stamatiou έγραψε:#include <stdio.h>

main()
{
int kilos;
int money;
int money_to_pay;
char currency;
printf("What is the currency?\n");
scanf("%s",&currency);
fflush(stdin);
printf("How many kilos is your product?");
scanf("%d",&kilos);
fflush(stdin);
printf("How much does a kilo cost?");
scanf("%d",&money);
fflush(stdin);
money_to_pay = kilos * money;
printf("You will pay %d %s",money_to_pay,currency);
}
Go under the hood with C: Pointers, Strings, Linked Lists
Άβαταρ μέλους
migf1
powerTUX
powerTUX
 
Δημοσιεύσεις: 2082
Εγγραφή: 03 Ιουν 2011, 16:32
Εκτύπωση

Re: Τα πάντα για την C/C++

Δημοσίευσηαπό stamatiou » 13 Ιούλ 2011, 16:54

Ναι αλλά το error λέει ότι είναι int και όχι char, και αν θέλω να δηλώσω string πρέπει ένα array για chars;
Αυτό είναι εκτός:
Έχω τον παρακάτω κώδικα:
Κώδικας: Επιλογή όλων
#include <stdio.h>

int main(void)
{
int i;
int input;
int sum = 1;
for(i = 0;i<10;i++)
{
printf("Insert the %d number:\n",i+1);
scanf("%d",&input);
if(input % sum == 0)
{
sum = sum + input;
}
}
printf("The sum of the numbers that are divided by 3 without leaving a remainder is %d\n",sum);
exit(0)
}

Και μου βγάζει error:
Κώδικας: Επιλογή όλων
Floating point exception

Αλλά αφού έχω κάνει compile και τρέξει το πρόγραμμα.
stamatiou
daemonTUX
daemonTUX
 
Δημοσιεύσεις: 947
Εγγραφή: 25 Ιουν 2010, 20:23
Εκτύπωση

Re: Τα πάντα για την C/C++

Δημοσίευσηαπό migf1 » 13 Ιούλ 2011, 18:24

stamatiou έγραψε:Ναι αλλά το error λέει ότι είναι int και όχι char, και αν θέλω να δηλώσω string πρέπει ένα array για chars;

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

char currency[100]="";

έγραψε:
Αυτό είναι εκτός:
Έχω τον παρακάτω κώδικα:
Κώδικας: Επιλογή όλων

[snip]

Και μου βγάζει error:
Κώδικας: Επιλογή όλων
Floating point exception

Αλλά αφού έχω κάνει compile και τρέξει το πρόγραμμα.

Σε μένα τρέχει κανονικά, αλλά δεν κάνει αυτό που λέει.

ΥΓ. Btw, χωρίς ; μετά το exit(0) δεν κάνει compile. Επίσης, όταν τα κλείνεις με: exit(0); τα προγράμματα χρειάζεται να κάνεις και #include <stdlib.h>, αλλιώς μπορείς να τα κλείνεις με: return 0;
Go under the hood with C: Pointers, Strings, Linked Lists
Άβαταρ μέλους
migf1
powerTUX
powerTUX
 
Δημοσιεύσεις: 2082
Εγγραφή: 03 Ιουν 2011, 16:32
Εκτύπωση

ΠροηγούμενηΕπόμενο

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