小弟实在无法解决
#include<stdio.h>#include<stdlib.h>
int f()
{
int x;
double a,b;
printf("\n\n\n\n\n\t\t **********欢迎使用简易运算系统**********\n");
printf("\t\t 1. 加 法 \n");
printf("\t\t 2. 减 法 \n");
printf("\t\t 3. 乘 法 \n");
printf("\t\t 4. 除 法 \n");
printf("\t\t 0. 退 出 \n");
printf("\t\t ****************************************\n");
printf("\t\t 请输入运算代码:");
scanf("%d",&x);
switch (x)
{
case 1:
{
printf("\n\t\t\t 请输入两个数,逗号隔开。\n\t\t\t\t ");
scanf("%lf,%lf",&a,&b);
printf("\t\t\t %.2lf + %.2lf = %.2lf\n",a,b,a+b);
break;
}
case 2:
{
printf("\n\t\t\t 请输入两个数,逗号隔开。\n\t\t\t\t ");
scanf("%lf,%lf",&a,&b);
printf("\t\t\t %.2lf - %.2lf = %.2lf\n",a,b,a-b);
break;
}
case 3:
{
printf("\n\t\t\t 请输入两个数,逗号隔开。\n\t\t\t\t ");
scanf("%lf,%lf",&a,&b);
printf("\t\t\t %.2lf * %.2lf = %.2lf\n",a,b,a*b);
break;
}
case 4:
{
printf("\n\t\t\t 请输入两个数,逗号隔开。\n\t\t\t\t ");
scanf("%lf,%lf",&a,&b);
b==0?printf("\t\t\t 除数为零,不合法!"):printf("\t\t\t %.2lf / %.2lf = %.2lf\n",a,b,a/b);
break;
}
case 0:
printf("\t\t 0. 退 出 \n\n\n\n");
break;
default:
printf("\t\t 输入错误 \n\n\n\n");
}
printf("\n\n\t\t\t 是否继续<Y/N>");
return 0;
}
int main()
{
char ch;
f();
scanf("%c",&ch);
switch(ch)
{
case 'Y':
{
fflush(stdin);
system("cls");
main();
break;
}
case 'N':
{
printf("程序结束,按任意键返回.");
break;
}
}
getch();
return 0;
}为什么无法清屏?
话说main函数只能有一个,下边那个貌似不合法 还有些细节我没时间帮你处理,见谅
#include<stdio.h>
#include<stdlib.h>
#include<string.h>
#include<conio.h>
int f()
{
int x;
double a,b;
char ch;
printf("*******************欢迎*****************\n");
printf(" 1. 加法 \n");
printf(" 2. 减法 \n");
printf(" 3. 乘法 \n");
printf(" 4. 除法 \n");
printf(" 0. 退出 \n");
printf("****************************************\n");
printf(" 请输入操作序号:\n");
scanf("%d",&x);
switch (x)
{
case 1:
{
printf("\n\t\t\t 请输入两个数\t\t\t\t ");
scanf("%lf%lf",&a,&b);
printf("\t\t\t %.2lf + %.2lf = %.2lf\n",a,b,a+b);
break;
}
case 2:
{
printf("\n\t\t\t 请输入两个数\t\t\t\t ");
scanf("%lf%lf",&a,&b);
printf("\t\t\t %.2lf - %.2lf = %.2lf\n",a,b,a-b);
break;
}
case 3:
{
printf("\n\t\t\t 请输入两个数\t\t\t\t ");
scanf("%lf,%lf",&a,&b);
printf("\t\t\t %.2lf * %.2lf = %.2lf\n",a,b,a*b);
break;
}
case 4:
{
printf("\n\t\t\t 请输入两个数\t\t\t\t ");
scanf("%lf,%lf",&a,&b);
b==0?printf("\t\t\t ERROR:被除数为0!\n"):printf("\t\t\t %.2lf / %.2lf = %.2lf\n",a,b,a/b);
break;
}
case 0:
printf("\t\t 0. 退出 \n\n\n\n");
break;
default:
printf("\t\t 输入错误 \n\n\n\n");
}
printf("\n\n\t\t\t 是否继续<Y/N>");
return 0;
}
int main()
{
char ch;
f();
ch = getch();
while(ch=='Y')
{
fflush(stdin);
system("cls");
f();
ch = getch();
}
return 0;
} 不知道lz是说全部清还是? #include<stdio.h>
#include<stdlib.h>
int f()
{
int x;
double a,b;
printf("\n\n\n\n\n\t\t **********欢迎使用简易运算系统**********\n");
printf("\t\t 1. 加 法 \n");
printf("\t\t 2. 减 法 \n");
printf("\t\t 3. 乘 法 \n");
printf("\t\t 4. 除 法 \n");
printf("\t\t 0. 退 出 \n");
printf("\t\t ****************************************\n");
printf("\t\t 请输入运算代码:");
scanf("%d",&x);
switch (x)
{
case 1:
{
printf("\n\t\t\t 请输入两个数,逗号隔开。\n\t\t\t\t ");
scanf("%lf,%lf",&a,&b);
printf("\t\t\t %.2lf + %.2lf = %.2lf\n",a,b,a+b);
break;
}
case 2:
{
printf("\n\t\t\t 请输入两个数,逗号隔开。\n\t\t\t\t ");
scanf("%lf,%lf",&a,&b);
printf("\t\t\t %.2lf - %.2lf = %.2lf\n",a,b,a-b);
break;
}
case 3:
{
printf("\n\t\t\t 请输入两个数,逗号隔开。\n\t\t\t\t ");
scanf("%lf,%lf",&a,&b);
printf("\t\t\t %.2lf * %.2lf = %.2lf\n",a,b,a*b);
break;
}
case 4:
{
printf("\n\t\t\t 请输入两个数,逗号隔开。\n\t\t\t\t ");
scanf("%lf,%lf",&a,&b);
b==0?printf("\t\t\t 除数为零,不合法!"):printf("\t\t\t %.2lf / %.2lf = %.2lf\n",a,b,a/b);
break;
}
case 0:
printf("\t\t 0. 退 出 \n\n\n\n");
break;
default:
printf("\t\t 输入错误 \n\n\n\n");
}
printf("\n\n\t\t\t 是否继续<Y/N>\n");
return 0;
}
int main()
{
int ch;
f();
scanf("%d",&ch);
switch(ch)
{
case 1:
{
fflush(stdin);
system("CLS");
main();
break;
}
case 0:
{
printf("程序结束,按任意键返回.");
exit(0);
break;
}
}
getchar();
return 0;
} 杨学子 发表于 2014-4-14 21:36 static/image/common/back.gif
不知道lz是说全部清还是? #include
#include
int f()
把第一个输入前的内容保存其他的清空,实现程序循环使用 人人都说“一个shell脚本顶1万行代码”,果然没错:titter: Ryoma 发表于 2014-4-14 21:40 static/image/common/back.gif
把第一个输入前的内容保存其他的清空,实现程序循环使用
试试这个整形版本~~!#include<stdio.h>
#include<stdlib.h>
int d()
{
int x;
int a,b;
printf("\n\n\n\n\n\t\t **********欢迎使用简易运算系统**********\n");
printf("\t\t 1. 加 法 \n");
printf("\t\t 2. 减 法 \n");
printf("\t\t 3. 乘 法 \n");
printf("\t\t 4. 除 法 \n");
printf("\t\t 0. 退 出 \n");
printf("\t\t ****************************************\n");
printf("\t\t 请输入运算代码:");
scanf("%d",&x);
switch (x)
{
case 1:{
printf("\n\t\t\t 请输入两个数,逗号隔开。\n\t\t\t\t ");
scanf("%d,%d",&a,&b);
printf("\t\t\t %d+ %d = %d\n",a,b,a+b);
break;
}
case 2:{
printf("\n\t\t\t 请输入两个数,逗号隔开。\n\t\t\t\t ");
scanf("%d,%d",&a,&b);
printf("\t\t\t %d - %d = %d\n",a,b,a-b);
break;
}
case 3: {
printf("\n\t\t\t 请输入两个数,逗号隔开。\n\t\t\t\t ");
scanf("%d,%d",&a,&b);
printf("\t\t\t %d * %d = %d\n",a,b,a*b);
break;
}
case 4:{
printf("\n\t\t\t 请输入两个数,逗号隔开。\n\t\t\t\t ");
scanf("%d,%d",&a,&b);
if(b==0){
printf("\t\t\t 除数为零,不合法!");
}
else{
printf("\t\t\t %d / %d = %d\n",a,b,a/b);
}
break;
}
case 0:{
printf("\t\t 0. 退 出 \n\n\n\n");
break;
}
default:{
printf("\t\t 输入错误 \n\n\n\n");
break;
}
}
printf("\n\n\t\t\t 是否继续<Y/N>");
}
int main()
{
char ch;
d();
while(scanf("%c",&ch)!='\n')
switch(ch){
case 'Y':
case 'y':{/*
fflush(stdin);*/
system("cls");
d();
break;
}
case 'N':
case 'n':{
printf("程序结束,按任意键返回.");
getch();
return 0;
break;
}
}
getch();
return 0;
} oggplay 发表于 2014-4-14 21:51 static/image/common/back.gif
人人都说“一个shell脚本顶1万行代码”,果然没错
shell脚本是啥?
没心没肺的笑 发表于 2014-4-14 21:51 static/image/common/back.gif
试试这个整形版本~~!
while(scanf("%c",&ch)!='\n')为什么加了这句,问题就解决了?
Ryoma 发表于 2014-4-15 18:31 static/image/common/back.gif
while(scanf("%c",&ch)!='\n')为什么加了这句,问题就解决了?
额~~在C语言里你输入ch的值的时候,你除了输入了ch,你还按了回车键啊~
所以要除按掉回车键产生的字符也就是'\n' 受第一次输入的回车影响导致,代码已改:int main()
{
char ch;
f();
fflush(stdin);
scanf("%c",&ch);
switch(ch)
{
case 'Y':
{
fflush(stdin);
system("cls");
main();
break;
}
case 'N':
{
printf("程序结束,按任意键返回.");
break;
}
}
getch();
return 0;
} 小甲鱼 发表于 2014-4-15 20:19 static/image/common/back.gif
受第一次输入的回车影响导致,代码已改:
大师,我看了你好多视频,支持你呀~~ 大师,我看了你好多视频,支持你呀~~
页:
[1]