三道c语言的程序题要求要步骤全、最好把思路写上 先上200分在线等

1.计算两个整数的加.减.乘.除的值。例如,输入“3,5”之后,显示运算菜单“1.加2.减3.乘.4除”,通过输入菜单前的数字,选择运算方式(用swith语句实现)并输出结果,当除数是0时,输出一条提示信息“除数不能为0”。
2.某书店卖书时有如下规定:购书在20000元以上者,打7.5折:购书在10000元以上者,打八折;购书在2000元以上者,打8.5折;购书在100元以上者,打9折。现买3元的书m册,编程计算该顾客应付多少钱。(提示:现根据购买册数计算总额,再根据总金额计算付款金额)
3.有一个数字游戏:有12个1分别站在等号的两边“111111=111111”,现在在等式右边的1中间插入两个乘号,并空出一个位置,如下所示:
111111=111*11*□1
编写程序,求出空位上填什么数能使等式成立。
分析:设应添加的数字为x,问题转化为使111*11* (10*x+1)==111111即可。
不会的别来瞎说、、、

第一题很简单,没啥好说的,就是输入数字,然后一个简单的 switch case 语句。
#include <stdio.h>
int main()
{
int a, b, opr;

printf("输入两个数字,如 3 5 (数字用空格分开)\n");
scanf("%d %d", &a, &b);

printf("选择计算方式:\n");
printf("1. 加, 2. 减, 3. 乘, 4. 除\n");
scanf("%d", &opr);

switch (opr)
{
case 1:
printf("%d + %d = %d\n", a, b, a+b);
break;

case 2:
printf("%d - %d = %d\n", a, b, a-b);
break;

case 3:
printf("%d X %d = %d\n", a, b, a*b);
break;

case 4:
if (b == 0)
{
printf("除数不能为 0\n");
return 1;
}
printf("%d / %d = %d\n", a, b, a/b);
break;

default:
printf("无效的计算方式\n");
return 1;
}

return 0;
}
第二题,输入购买册数m后,计算出总价 total,然后再根据total的大小,乘以对应的折扣率,即得最终价格。
#include <stdio.h>
int main()
{
unsigned int total, m, price;

price = 3; /* 3元每册 */

printf("要买多少册?\n");
scanf("%u", &m);

total = m*price; /* 总价 */

if (total > 20000)
total *= 0.75;
else if (total > 10000)
total *= 0.8;
else if (total > 2000)
total *= 0.85;
else if (total > 100)
total *= 0.9;

printf("应付 %u 元\n", total);
return 0;
}

第三题,让 x 从1开始循环到 9 ,依次代入 111*11* (10*x+1) 这个式子中,如果结果等于 111111 ,那么就找到对应的x了,然后打印结果即可。 最终结果 x = 9.
#include <stdio.h>

int main()
{
int x;

for (x = 1; x <= 9; x++)
{
if (111*11*(10*x + 1) == 111111)
{
printf("x = %d, 111111 = 111*11*%d1\n", x, x);
break;
}
}
return 0;
}
温馨提示:答案为网友推荐,仅供参考
第1个回答  2011-05-26
输入两个数字,然后做个菜选项,然后从键盘获取输入的数字,switch判断对应数字字符,然后进行运算,输出结果
#include <stdio.h>
int main()
{
int a,b;
char c;
printf("输入两个数字");
scanf("%d %d",&a,&b);
menu:
printf("%s\n","1.加");
printf("%s\n","2.减");
printf("%s\n","3.乘");
printf("%s\n","4.除");

while(1)
{
c=getchar();
switch(c)
{
case '1':
printf("a+b=%d\n",a+b);
goto menu;
break;
case '2':
printf("a-b=%d\n",a-b);
goto menu;
break;
case '3':
printf("a*b=%d\n",a*b);
goto menu;
break;
case '4':
if(b==0)
printf("除数不能为0\n");
else
printf("a/b=%d\n",a/b);
goto menu;
break;
}
}
}

第二题
输入顾客购书的数量,然后计算总额,比较之后根据要求,算出打着后的总金额,输出即可
#include <stdio.h>
#include <stdlib.h>
int main()
{
char num[100];
int a;
double money=0;
int pay=0;
while(1)
{
printf("输入购书册数:");
gets(num);
a=atol(num);
money=3*a;
if(money>=100 && money<2000)
money=money*0.90;
else if(money>=2000 && money<=10000)
money=money*0.85;
else if(money>10000 && money<20000)
money=money*0.80;
else if(money>=20000)
money=money*0.75;
printf("顾客应付%.2f元\n",money);
}
}
第三题,楼上的就行 上面程序中加上while循环,可循环输入显示,不必重新执行程序
第2个回答  2011-05-26
#include <memory.h>
#include <stdlib.h>
#include <stdio.h>
#include "math.h"

bool CalReslut(double a,double b, int Operate,double& result){
bool bVal = true;
switch(Operate){
case 1:
result = a + b;
break;
case 2:
result = a - b;
break;
case 3:
result = a * b;
break;
case 4:
if(b == 0){
bVal = false;
printf("除数不能为0!");
break;
}
result = a / b;
break;
default:
printf("输入的操作运算符不对!");
bVal = false;
break;
}
return bVal;
}

float CalMenoy(int nNumber,float fPrice = 3.0f){
if(nNumber <= 0 || fPrice <= 0){
printf("请输入合法的数据!");
return 0;
}
float fVal = fPrice*nNumber;

if (fVal >= 20000.0f)
return fVal*0.75f;
else if(fVal >= 10000.0f)
return fVal*0.80f;
else if(fVal >= 2000.0f)
return fVal*0.85f;
else if(fVal >= 100.0f)
return fVal*0.90f;
else
return fVal;
}

bool GetX(char* pRightVal,int& x){
if(pRightVal == 0)
return false;

char val[2][5];
memset(val,0,sizeof(val));
char* p = pRightVal;
char* ps = p;
int i = 0;
int v = 0;
while (*(p++)){
if(v == 2)break;
i++;
if(*p == '*'){
memcpy(val[v],ps,i);
ps = ++p;
i =0 ;
v++;
}
}
if(v != 2)
return false;
int a = atoi(val[0]);
int b = atoi(val[1]);
x = (111111/(a*b)-1)/10;
return true;
}

void mainFace(){
printf("请输入以下字符:\n");
printf("1: 计算两数;\n");
printf("2: 计算图书总价\n");
printf("3: 计算111111等式中x的值\n");
printf("0: 退出\n");
}
void main()
{
while(1){
mainFace();
char a;
scanf("%c",&a);
switch(a){
case '0':
return;
case '1':
{
double x,y;
int operater;
double val = 0;
printf("请输入a,b的值以及操作符:\n");
printf("1: +;\n");
printf("2: -;\n");
printf("3: *;\n");
printf("4: \\;\n");
scanf("%lf%lf%d",&x,&y,&operater);
if(CalReslut(x,y, operater,val)){
printf("请算结果为:%lf\n\n",val);
}
}
break;
case '2':
{
int num;
printf("请输入图书的数量(价格为3元):\n");
scanf("%d",&num);
float val = CalMenoy(num);
printf("应付:%f元\n\n",val);
}
break;
case '3':
{
char c[100];
memset(c,0,sizeof(c));
printf("请输入等式(如果111*11*):\n");
scanf("%s",c);
int x;
if(GetX(c,x)){
printf("X = %d\n\n",x);
}
}
break;
default:
break;
}
}
}
第3个回答  2011-05-26
1.void operation(int a,int b)
{
int oper;
printf("please input two integers");
scanf("%d%d",&a,&b);
printf("1.加2.减3.乘.4除\n");
scanf("%d",&oper);
switch(oper)
{
case(1):
printf("a+b=%d\n",a+b);
break;
case(2):
printf("a-b=%d\n",a-b);
break;
case(3):
printf("a*b=%d\n",a*b);
break;
case(4):
if(b==0) printf("除数不能为0");

else printf("a/b=%d\n",a/b);
break;
default:
printf("please input a number between 1and4\n");

}

}
2.float pay(int m)
{
float price=3*m;
if(price>20000) price*=0.75;
else if(price>10000) price*=0.8;
else if(price>2000) price*=0.85;
else if(price>100) price*=0.9;
return price;
}
第4个回答  2011-05-26
1.if(button1.text="加")
{
textbox3.text=textbox1.text*textbox2.text
}
都是类似的 类型转换的话 我就不弄了
2.
现买3元的书m册

double a=double.pare(书的价格*m)
if(a>20000)
{
应付钱=a*0.75
}else
if(a>10000 && a<20000)
{
应付钱=a*0.8
}
这个是第二题的
可以不给分