PDA

View Full Version : اشکال در نوشتن switch



rahool
دوشنبه 14 آذر 1390, 17:55 عصر
سلام ! من باید برنامه ای می نوشتم که اعمال ضرب و جمع و تفریق و تقسیم رو به کاربر نشون می داد و از کاربر می خواست که یکی از اعمال رو انتخاب کنه و بعد یک عدد به عنوان a و یک عدد به عنوان b از کاربر می گیره و عمل انتخاب شده رو انجام می ده
اما برای نوشتن switch دچار مشکل شدم چون برای switchنمی تونم از float یا double استفاده کنم بنابراین وقتی می خواد جواب رو نشون بده فقط عدد صحیح رو نشون می ده و اعشار رو نشون نمی ده کسی می دونه چه جوری باید این مشکل رو حل کنم ؟

مشکل در قسمت آخر هست







#include <stdio.h>
#include <stdlib.h>



int addiere()
{
int a=0;
int b=0;
printf("Geben Sie a ein:\n");
scanf("%d",&a);
printf("Geben Sie b ein:\n");
scanf("%d",&b);

int total=a+b;
printf("das Ergebnis ist %i\n" , total);

return total;

}

int substrahiere()
{
int a=0;
int b=0;
printf("Geben Sie a ein:\n");
scanf("%d",&a);
printf("Geben Sie b ein:\n");
scanf("%d",&b);

int total=a-b;
printf("das Ergebnis ist %i\n" , total);

return total;

}

int multipliziere()
{
int a=0;
int b=0;
printf("Geben Sie a ein:\n");
scanf("%d",&a);
printf("Geben Sie b ein:\n");
scanf("%d",&b);

int total=a*b;
printf("das Ergebnis ist %i\n" , total);
return total;

}

int dividiere()
{
int a=0;
int b=0;
printf("Geben Sie a ein:\n");
scanf("%d",&a);
printf("Geben Sie b ein:\n");
scanf("%d",&b);

if(b==0)
{
printf("\n Division ist nicht möglich\n");

}
else
{

int total=a/b;
printf("\n das Ergebnis ist %i\n " , total);
return total;
}
}
//مشکل از اینجا به بعد است
int main()
{

printf("Wählen Sie einen Programm aus: \n");

int i=0;

printf("\n\n(1)a+b");

printf("\n\n(2)a-b");

printf("\n\n(3)a*b");

printf("\n\n(4)a/b");

printf("\n\n(5)Programmende\n");

scanf("%d",&i);

switch(i)
{
case 1:
addiere();
break;
case 2:
substrahiere();
break;
case 3:
multipliziere();
break;
case 4:
dividiere();
break;
case 5:
break;

}
system("Pause");
return 0;
}

BeginnerProgrammer
دوشنبه 14 آذر 1390, 18:18 عصر
اینکه switch نمیتونه float بگیره ربطی به جواب نداره (داره؟؟؟؟؟؟؟)!!!!!!
بجای اینکه توابعتون a,b رو به صورت عدد صحیح تعریف کنید float تعریف کنید.


#include <stdio.h>
#include <stdlib.h>



int addiere()
{
float a=0;
float b=0;
printf("Geben Sie a ein:\n");
scanf("%f",&a);
printf("Geben Sie b ein:\n");
scanf("%f",&b);

float total=a+b;
printf("das Ergebnis ist %f\n" , total);

return total;

}

int substrahiere()
{
float a=0;
float b=0;
printf("Geben Sie a ein:\n");
scanf("%f",&a);
printf("Geben Sie b ein:\n");
scanf("%f",&b);

float total=a-b;
printf("das Ergebnis ist %f\n" , total);

return total;

}

int multipliziere()
{
float a=0;
float b=0;
printf("Geben Sie a ein:\n");
scanf("%f",&a);
printf("Geben Sie b ein:\n");
scanf("%f",&b);

float total=a*b;
printf("das Ergebnis ist %f\n" , total);
return total;

}

int dividiere()
{
float a=0;
float b=0;
printf("Geben Sie a ein:\n");
scanf("%f",&a);
printf("Geben Sie b ein:\n");
scanf("%f",&b);

if(b==0)
{
printf("\n Division ist nicht möglich\n");

}
else
{

float total=a/b;
printf("\n das Ergebnis ist %f\n " , total);
return total;
}
}
//مشکل از اینجا به بعد است
int main()
{

printf("Wählen Sie einen Programm aus: \n");

int i=0;

printf("\n\n(1)a+b");

printf("\n\n(2)a-b");

printf("\n\n(3)a*b");

printf("\n\n(4)a/b");

printf("\n\n(5)Programmende\n");

scanf("%d",&i);

switch(i)
{
case 1:
addiere();
break;
case 2:
substrahiere();
break;
case 3:
multipliziere();
break;
case 4:
dividiere();
break;
case 5:
break;

}
system("Pause");
return 0;
}

http://up3.iranblog.com/images/5i7xcc5od7vbn05m4kro.jpg

rahool
دوشنبه 14 آذر 1390, 18:21 عصر
مرسی از جوابتون :) درست شد !