|
You last visited: Today at 22:51
Advertisement
Hilfe bei einer C Aufgabe ;)
Discussion on Hilfe bei einer C Aufgabe ;) within the General Coding forum part of the Coders Den category.
11/11/2006, 11:18
|
#1
|
elite*gold: 0
Join Date: May 2005
Posts: 407
Received Thanks: 11
|
Ich habe auch noch ein kleines Problem bei einer C Aufgabe
Es sollen 3 Zahlen eingelesen werden und dann überprüft werden ob das Dreieck
- rechtwinklig
- gleichzeitig
- gleichschenklig
oder ob 2 der oben genannten sachen zutreffen
Ich hatte mir überlegt das ich es so schreibe
Code:
#include <stdio.h>
#include <stdlib.h>
#include <math.h>
int main(int argc, char *argv[])
{
float a, b, c; /* deklaration */
do
/* eingabe der zahlen, einlesen und ueberpruefung ob <= 0 */
{
printf("Bitte geben Sie die laenge der ersten Seite ein\n");
scanf("%f", &a);
if(a<=0)
printf("Bitte geben Sie eine positive Zahl ein\n");
}
while(a<=0);
do
{
printf("Bitte geben Sie die laenge der zweiten Seite ein\n");
scanf("%f", &b);
if(b<=0)
printf("Biitte geben Sie eine positive Zahl ein\n");
}
while(b<=0);
do
{
printf("Bitte geben sie die laenge der dritten Seite ein\n");
scanf("%f", &c);
if(c<=0)
printf("Bitte geben sie eine positive Zahl ein\n");
}
while(c<=0);
/*In der folgenden anweisung wird berechnet was das Dreieck fuer eine Art ist*/
if(fabs(a-b)<0.0001 || fabs(a-c)<0.0001 || fabs(b-c)<0.0001)
printf("Das Dreieck ist gleichschenklig!\n");
else if (fabs(a-b)<0,0001 && fabs(a-c)<0.0001 && fabs(b-c)<0.0001)
printf("Das Dreieck ist gleichseitig!\n");
float aqua, bqua, cqua;
aqua = a*a;
bqua = b*b;
cqua = c*c;
else ((fabs(aqua+bqua)-cqua)<0.0001 || (fabs(aqua+cqua)-bqua)<0.0001 || (fabs(cqua+bqua)-aqua)<0.0001)
printf("Das Dreieck ist rechtwinklig!\n");
return 0;
}
und dann in der Ausgabe erscheint was es ist, wenn mehrere zutreffen das prog 2 sachen ausgibt z.b.
Das Dreieck ist Gleichseitig
Das Dreieck ist Gleichwinklig
Aber es gibt immer alle 3 Dinge aus egal was man eingibt ;(
Weiß vielleicht jemand Rat? Wäre sehr dankbar
|
|
|
11/11/2006, 12:04
|
#2
|
elite*gold: 20
Join Date: Jan 2006
Posts: 539
Received Thanks: 228
|
Aus dem bauch raus wuerde ich es so machen:
Code:
if (a == b && a ==c || b == c && b == a || c == a && c == b){
printf("Das Dreieck ist gleichseitig!\n");}
else if (a == b || b == c || c == a ){
printf("Das Dreieck ist gleichschenklig!\n");}
if (a*a + b*b == c*c){
printf("Das Dreieck ist rechtwinklig!\n");}
grueße redox
|
|
|
11/11/2006, 12:52
|
#3
|
elite*gold: 0
Join Date: Aug 2005
Posts: 896
Received Thanks: 334
|
Quote:
Originally posted by rEdoX@Nov 11 2006, 12:04
Aus dem bauch raus wuerde ich es so machen:
Code:
if (a == b && a ==c || b == c && b == a || c == a && c == b){
printf("Das Dreieck ist gleichseitig!\n");}
else if (a == b || b == c *|| c == a ){
printf("Das Dreieck ist gleichschenklig!\n");}
if (a*a + b*b == c*c){
printf("Das Dreieck ist rechtwinklig!\n");}
grueße redox
|
Die Mitte ist gut, oben prüfst du unnötig viel und unten zu wenig ;D
|
|
|
11/11/2006, 13:56
|
#4
|
elite*gold: 0
Join Date: May 2005
Posts: 407
Received Thanks: 11
|
Quote:
Originally posted by mr.rattlz+Nov 11 2006, 12:52--></span><table border='0' align='center' width='95%' cellpadding='3' cellspacing='1'><tr><td>QUOTE (mr.rattlz @ Nov 11 2006, 12:52)</td></tr><tr><td id='QUOTE'> <!--QuoteBegin--rEdoX@Nov 11 2006, 12:04
Aus dem bauch raus wuerde ich es so machen:
Code:
if (a == b && a ==c || b == c && b == a || c == a && c == b){
printf("Das Dreieck ist gleichseitig!\n");}
else if (a == b || b == c || c == a ){
printf("Das Dreieck ist gleichschenklig!\n");}
if (a*a + b*b == c*c){
printf("Das Dreieck ist rechtwinklig!\n");}
grueße redox
|
Die Mitte ist gut, oben prüfst du unnötig viel und unten zu wenig ;D [/b][/quote]
wie denn dann?
und ja irgendwie hab ich noch meine probs bei if anweisungen, leider
|
|
|
11/11/2006, 14:25
|
#5
|
elite*gold: 0
Join Date: Aug 2005
Posts: 896
Received Thanks: 334
|
Quote:
Originally posted by lugh+Nov 11 2006, 13:56--></span><table border='0' align='center' width='95%' cellpadding='3' cellspacing='1'><tr><td>QUOTE (lugh @ Nov 11 2006, 13:56)</td></tr><tr><td id='QUOTE'>
Quote:
Originally posted by -mr.rattlz@Nov 11 2006, 12:52
<!--QuoteBegin--rEdoX
|
Quote:
@Nov 11 2006, 12:04
Aus dem bauch raus wuerde ich es so machen:
Code:
if (a == b && a ==c || b == c && b == a || c == a && c == b){
printf("Das Dreieck ist gleichseitig!\n");}
else if (a == b || b == c *|| c == a ){
printf("Das Dreieck ist gleichschenklig!\n");}
if (a*a + b*b == c*c){
printf("Das Dreieck ist rechtwinklig!\n");}
grueße redox
|
Die Mitte ist gut, oben prüfst du unnötig viel und unten zu wenig ;D
|
wie denn dann?
und ja irgendwie hab ich noch meine probs bei if anweisungen, leider  [/b][/quote]
Code:
if (a == b && a ==c || b == c && b == a || c == a && c == b)
Ist vollkommen unnötig solang, weil
Code:
if (a == b && a ==c)
total ausreichend wäre: Wenn a=b ist und a=c dann ist auch c=b und somit alle Seiten gleichlang
Code:
if (a*a + b*b == c*c)
Das geht davon aus, dass c die längste Seite ist, was aber nicht unbedingt so sein muss oder ?
An der Stelle muss der Code also länger sein, wenn man von der Möglichkeit ausgeht, dass jede der Seiten die längste sein könnte:
Code:
if (a*a + b*b == c*c||a*a+c*c==b*b||b*b+c*c==a*a)
|
|
|
11/11/2006, 15:23
|
#6
|
elite*gold: 0
Join Date: May 2005
Posts: 407
Received Thanks: 11
|
aber wir müssen es mit einer fabs anweisung machen ;(
|
|
|
11/11/2006, 17:09
|
#7
|
elite*gold: 20
Join Date: Jan 2006
Posts: 539
Received Thanks: 228
|
das faellt dir ja frueh ein
|
|
|
11/11/2006, 17:14
|
#8
|
elite*gold: 0
Join Date: May 2005
Posts: 407
Received Thanks: 11
|
sry
aber deswegen hat ich es auch mit einer fabs gemacht, bin jetzt soweit gekommen
Code:
#include <stdio.h>
#include <stdlib.h>
#include <math.h>
int main(int argc, char *argv[])
{
float a, b, c; /* deklaration */
float aqua, bqua, cqua;
do
/* eingabe der zahlen, einlesen und ueberpruefung ob <= 0 */
{
printf("Bitte geben Sie die laenge der ersten Seite ein\n");
scanf("%f", &a);
if(a<=0)
printf("Bitte geben Sie eine positive Zahl ein\n");
}
while(a<=0);
do
{
printf("Bitte geben Sie die laenge der zweiten Seite ein\n");
scanf("%f", &b);
if(b<=0)
printf("Biitte geben Sie eine positive Zahl ein\n");
}
while(b<=0);
do
{
printf("Bitte geben sie die laenge der dritten Seite ein\n");
scanf("%f", &c);
if(c<=0)
printf("Bitte geben sie eine positive Zahl ein\n");
}
while(c<=0);
/*In der folgenden anweisung wird berechnet was das Dreieck fuer eine Art ist*/
if(fabs(a-b)<0.0001 || fabs(a-c)<0.0001 || fabs(b-c)<0.0001)
printf("Das Dreieck ist gleichschenklig!\n");
else if (fabs(a-b)<0,0001 && fabs(a-c)<0.0001 && fabs(b-c)<0.0001)
printf("Das Dreieck ist gleichseitig!\n");
else {
aqua = a*a;
bqua = b*b;
cqua = c*c;
if ((fabs(aqua+bqua)-cqua)<0.0001 || (fabs(aqua+cqua)-bqua)<0.0001 || (fabs(cqua+bqua)-aqua)<0.0001)
printf("Das Dreieck ist rechtwinklig!\n");
}
return 0;
}
aber da ist noch irgendwo ein fehler da die ausgabe IMMER gleichschenklig ist ;(
|
|
|
11/11/2006, 19:07
|
#9
|
elite*gold: 0
Join Date: Aug 2004
Posts: 1,325
Received Thanks: 109
|
Code:
#include <stdio.h>
#include <stdlib.h>
#include <math.h>
float getNumber(char *number[]){
float zahl;
do {
printf("Bitte geben sie die laenge der %s Seite ein\n",number);
scanf("%f", &zahl);
}
while(zahl<=0);
return zahl;
}
int main(int argc, char *argv[])
{
float a, b, c; /* deklaration */
float aqua, bqua, cqua;
a = getNumber("erste");
b = getNumber("zweite");
c = getNumber("dritte");
/*In der folgenden anweisung wird berechnet was das Dreieck fuer eine Art ist*/
if(fabs(a-b)<0.0001 || fabs(a-c)<0.0001 || fabs(b-c)<0.0001)
printf("Das Dreieck ist gleichschenklig!\n");
if (fabs(a-b)<0,0001 && fabs(a-c)<0.0001 && fabs(b-c)<0.0001)
printf("Das Dreieck ist gleichseitig!\n");
if ((fabs(a*a+b*b)-c*c)<0.0001 || (fabs(a*a+c*c)-b*b)<0.0001 || (fabs(c*c+b*b)-a*a)<0.0001)
printf("Das Dreieck ist rechtwinklig!\n");
return 0;
}
so evtl?
p.s. musste feststellen das der code tag die tabs kaputt macht und das deswegen nso schei**e anzeigt
|
|
|
 |
Similar Threads
|
Physik Aufgabe!Bitte um hilfe^^
06/17/2010 - Main - 4 Replies
Hey Jungs.
Habe hier ein dreckiges Problem.
Aufgabe
Dort die Aufgabe 328.
Ich weiß zwar das im Aufgabenteil a.) FR (Reibungskraft) gesucht ist und die Formel wie folgt lautet: FR= µ*FN
bzw. FN = FG*Cos( αlpha)
-----
|
Hilfe benötigt für eine Aufgabe
11/24/2009 - Off Topic - 14 Replies
Ich brauche die Lösung dieser Aufgabe.^^
Es wäre nett, wenn es einer Schritt für Schritt erklären würde.^^
http://www.imagebanana.com/code/3bqmxm7v/AufgabeR ESY.jpg
http://img5.imagebanana.com/view/3bqmxm7v/Aufgabe RESY.jpg
|
[HILFE] Hilfe bezüglich einer Levelanzeige
11/20/2009 - Metin2 Private Server - 39 Replies
Hallo ihr lieben,
ich wollte mal fragen wie es möglich ist das ich ingame die Level von anderen Spielern sehen kann. Muss ich da was an der Db vom Server ändern?
oder geht des überhaupt?
Würde mich über eure hilfe freuchen :rolleyes:
|
Hilfe bei einer Java Aufgabe
11/11/2006 - General Coding - 4 Replies
Denke mal hier kennen sich auch ein paar mit dem programmieren einer Java Aufgabe aus ;)
Komme leider an einer stelle nicht weiter, daher versuch ich es mal hier
public class hallo
{
public static void main(String[] args)
{
TextIO.putln("Bitte geben sie einen der folgenden Laendercodes ein: A=Austria, D=Deutschland, F=Frankreich, G=Groábritanien I=Italien oder M=Malle");
|
All times are GMT +1. The time now is 22:51.
|
|