c语言 如何用switch语句编写一个有关商场购物金额优惠的选择程式以下文字资料是由(历史新知网www.lishixinzhi.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!
c语言 如何用switch语句编写一个有关商场购物金额优惠的选择程式
#include
int main(int argc, char** argv)
{
int amount = 0;
scanf("%d", &amount);输入顾客购买的总额
int status = amount/1000;
switch (status)
{
case 0: break;
case 1: amount = amount * 0.95; break;
case 2: amount = amount*0.90; break;
case 3: amount *= 0.85; break;
default: amount *= 0.80; break;
}
printf("%d\n", amount);打印出打折后的总额
return 0;
}
编写c语言程式,输入购物款数,计算并输出优惠价。(要求用switch语句编写)
#include
int main()
{
float totalprice=0,level=0; 总的消费额,打折等级标志
scanf("%d",&totalprice);
if(totalprice<=1000) level=1; 一共分为五等,不同等级,对应不同的优惠策略。
else if(totalprice>1000 && totalprice<=2000) level=2;
else if(totalprice>2000 && totalprice<=3000) level=3;
else if(totalprice>3000 && totalprice<=5000) level=4;
else level=5;
switch(level) 一共分为五等,不同等级,对应不同的优惠策略。
{
case 1: printf("%f",totalprice);break;
case 2: printf("%f",totalprice*0.95);break;
case 3: printf("%f",totalprice*0.90);break;
case 4: printf("%f",totalprice*0.85);break;
default: printf("%f",totalprice*0.80);break;
}
return 0;
}
如何用c语言编写一个收款程式?
#include
int main(){
float sum=5.0;
int n; 购买数量
printf("输入要购买的数量:");
scanf("%d",&n); 输入购买数量
if((n>5)&&(n<=10)){ 打九折
sum=sum*n*0.9;
}
if((n>10)&&(n<=20)){
sum=sum*n*0.8;
}
if((n>20)&&(n<=50)){
sum=sum*n*0.7;
}
if((n>50)&&(n<=100)){
sum=sum*n*0.6;
}
if(n>100){
sum=sum*n*0.6;
}
printf("收款:%.1f",sum);
printf("\n");
}
如何用C语言编写一个关程序的程式?
基本思路:
1. 用Process32First+Process32Next列举所有程序。
2. 对列举的程序取程式名,比较是不是要关掉的程式。
3. 如是,呼叫TerminateProcess()结束它。
有的程式一启动就不止一个程序,所以即使关掉一个,也继续列举。
用法例:kp iexplore.exe 关闭IE程序(所有IE浏览器的视窗都关掉)
/********************************************
档名:kp.c
程式名:kp.exe
用法例:kp iexplore.exe
********************************************/
#include
#include
int KillMyProcess(char *exeName)
{
int rc = 0;
HANDLE hSysSnapshot = NULL;
PROCESSENTRY32 proc;
hSysSnapshot = CreateToolhelp32Snapshot ( TH32CS_SNAPPROCESS, 0 );
if ( hSysSnapshot == (HANDLE)-1 ) return 1;
proc.dwSize = sizeof(proc);
if ( Process32First ( hSysSnapshot, &proc ) ) {
do {
if (stricmp(proc.szExeFile, exeName)==0) {
HANDLE Proc_handle = OpenProcess(PROCESS_ALL_ACCESS, FALSE, proc.th32ProcessID);
if (Proc_handle==NULL || !TerminateProcess(Proc_handle, 0)) rc = 1;
else rc = 0;
}
} while ( Process32Next ( hSysSnapshot, &proc ) );
}
CloseHandle ( hSysSnapshot );
return rc;
}
int main(int argc, char *argv[])
{
if (argc>1) {
printf("Kill %s....\n", argv[1]);
if (KillMyProcess(argv[1])==0) printf(" --- Process is killed.\n");
else printf(" --- Process is not killed \n" ) ;
}
return 0;
}
用C#编写一个程式,用 switch语句
串联电路中,用电器的电功率与电
.NET 中C#的switch语句的语法如下(switch,case和default是关键字):
switch ( controllingExpression )
{
case constantExpression :
statements
break;
case constantExpression :
statements
break;
...
default :
statements
break;
}
controllingExpression(控制表示式)只求值一次。然后,从其constantExpression值等于controllingExpression值的case开始,它下方的所有语句都会一直执行,直到遇到一个break为止。随后,switch语句将结束,程式从switch结束大括号之后的第一个语句继续执行,并忽略其他case。
假如任何一个constantExpression值都不等于controllingExpression的值,就执行可选标签default之下的语句。
注意 假如controllingExpression的值和任何一个case标签都不匹配,同时没有发现一个default标签,程式会跳过整个switch语句,从它的结束大括号之后的第一个语句继续执行。
用switch语句编写一个程式
float price,rate;价格,税率
......接收price(接收非负值,负值则回圈接收)
switch(price/1000 )
{
case 0: rate=0.01;break;
case 1:
case 2:
case 3:
case 4: rate=0.02;break;
case 5:
case 6:
case 7:
case 8:
case 9: rate=0.03;break;
default: rate=0.05;
}
.....输出价格、税金
用if和switch语句编写c语言程式
if的
#include int main(){ int n; char *s; scanf("%d",&n); if(n == 1) s= "excellent"; else if(n == 2) s="good"; else if(n == 3) s = "pass"; else if(n == 4) s= "fail"; else s="error"; puts(s); return 0; }
switch的
#include int main(){ int n; char *s; scanf("%d",&n); switch(n) { case 1: s= "excellent"; break; case 2: s="good"; break; case 3: s = "pass"; break; case 4: s= "fail"; break; default: s="error"; break; } puts(s); return 0; }
如何用C语言编写一个迷宫程式?
#include
#include
#define M 15
#define N 15
struct mark 定义迷宫内点的座标型别
{
int x;
int y;
};
struct Element "恋"栈元素,嘿嘿。。
{
int x,y; x行,y列
int d; d下一步的方向
};
typedef struct LStack 链栈
{
Element elem;
struct LStack *next;
}*PLStack;
/*************栈函式****************/
int InitStack(PLStack &S)构造空栈
{
S=NULL;
return 1;
}
int StackEmpty(PLStack S)判断栈是否为空
{
if(S==NULL)
return 1;
else
return 0;
}
int Push(PLStack &S, Element e)压入新资料元素
{
PLStack p;
p=(PLStack)malloc(sizeof(LStack));
p->elem=e;
p->next=S;
S=p;
return 1;
}
int Pop(PLStack &S,Element &e) 栈顶元素出栈
{
PLStack p;
if(!StackEmpty(S))
{
e=S->elem;
p=S;
S=S->next;
free(p);
return 1;
}
else
return 0;
}
/***************求迷宫路径函式***********************/
void MazePath(struct mark start,struct mark end,int maze[M][N],int diradd[4][2])
{
int i,j,d;int a,b;
Element elem,e;
PLStack S1, S2;
InitStack(S1);
InitStack(S2);
maze[start.x][start.y]=2; 入口点作上标记
elem.x=start.x;
elem.y=start.y;
elem.d=-1; 开始为-1
Push(S1,elem);
while(!StackEmpty(S1)) 栈不为空 有路径可走
{
Pop(S1,elem);
i=elem.x;
j=elem.y;
d=elem.d+1; 下一个方向
while(d<4) 试探东南西北各个方向
{
a=i+diradd[d][0];
b=j+diradd[d][1];
if(a==end.x && b==end.y && maze[a][b]==0) 如果到了出口
{
elem.x=i;
elem.y=j;
elem.d=d;
Push(S1,elem);
elem.x=a;
elem.y=b;
elem.d=886; 方向输出为-1 判断是否到了出口
Push(S1,elem);
printf("\n0=东 1=南 2=西 3=北 886为则走出迷宫\n\n通路为:(行座标,列座标,方向)\n");
while(S1) 逆置序列 并输出迷宫路径序列
{
Pop(S1,e);
Push(S2,e);
}
while(S2)
{
Pop(S2,e);
printf("-->(%d,%d,%d)",e.x,e.y,e.d);
}
return; 跳出两层回圈,本来用break,但发现出错,exit又会结束程式,选用return还是不错滴
}
if(maze[a][b]==0) 找到可以前进的非出口的点
{
maze[a][b]=2; 标记走过此点
elem.x=i;
elem.y=j;
elem.d=d;
Push(S1,elem); 当前位置入栈
i=a; 下一点转化为当前点
j=b;
d=-1;
}
d++;
}
}
printf("没有找到可以走出此迷宫的路径\n");
}
/*************建立迷宫*******************/
void initmaze(int maze[M][N])
{
int i,j;
int m,n; 迷宫行,列 [/M]
printf("请输入迷宫的行数 m=");
scanf("%d",&m);
printf("请输入迷宫的列数 n=");
scanf("%d",&n);
printf("\n请输入迷宫的各行各列:\n用空格隔开,0代表路,1代表墙\n",m,n);
for(i=1;i<=m;i++)
for(j=1;j<=n;j++)
scanf("%d",&maze[i][j]);
printf("你建立的迷宫为(最外圈为强)...\n");
for(i=0;i<=m+1;i++) 加一圈围墙
{
maze[i][0]=1;
maze[i][n+1]=1;
}
for(j=0;j<=n+1;j++)
{
maze[0][j]=1;
maze[m+1][j]=1;
}
for(i=0;i<=m+1;i++) 输出迷宫
{
for(j=0;j<=n+1;j++)
printf("%d ",maze[i][j]);
printf("\n");
}
}
void main()
{
int sto[M][N];
struct mark start,end; start,end入口和出口的座标
int add[4][2]={{0,1},{1,0},{0,-1},{-1,0}};行增量和列增量 方向依次为东西南北 [/M]
initmaze(sto);建立迷宫
printf("输入入口的横座标,纵座标[逗号隔开]\n");
scanf("%d,%d",&start.x,&start.y);
printf("输入出口的横座标,纵座标[逗号隔开]\n");
scanf("%d,%d",&end.x,&end.y);
MazePath(start,end,sto,add); find path
system("PAUSE");
}
如何用C语言编写一个求年龄的程式
帮你搞了一个,刚有点小错误,修正了一下
#include"stdio.h"
#include"math.h"
typedef struct
{
int year;
int month;
int day;
}Date;
int date[2][12]={{31,28,31,30,31,30,31,31,30,31,30,31},{31,29,31,30,31,30,31,31,30,31,30,31}};
int judge(int year) 判断是否为闰年
{
int flag=0;
if((year%4==0&&year%100!=0)||year%400==0) flag=1;
else flag=0;
return flag;
}
Date work(Date user[2]) 计算两个日期相差
{
Date rec,tmpdate;
if(user[1].month>user[0].month||(user[1].month==user[0].month&&user[1].day>=user[0].day))
rec.year=user[1].year-user[0].year;
else
rec.year=user[1].year-user[0].year-1;
tmpdate.year=user[0].year+rec.year;
tmpdate.month=user[0].month;
tmpdate.day=user[0].day;
int m=judge(user[1].year);
if(tmpdate.year
{
if(tmpdate.day<= user[1].day)
{
rec.month= 12-tmpdate.month+user[1].month;
rec.day= user[1].day-tmpdate.day;
}
else
{
rec.month= 11-tmpdate.month+user[1].month;
rec.day=date[m][user[1].month]-tmpdate.day+ user[1].day;
}
}
else
{
if(tmpdate.day<= user[1].day)
{
rec.month= user[1].month-user[0].month;
rec.day= user[1].day-tmpdate.day;
}
else
{
rec.month= user[1].month-1;
rec.day=date[m][user[1].month]-tmpdate.day+ user[1].day;
}
}
return rec;
}
int main()
{
Date user[2];
int i;
printf("Please input 2 dates(such as 2008.10.2).\n");
for(i=0;i<2;i++)
{
scanf("%d.%d.%d",&user[i].year,&user[i].month,&user[i].day);
}
Date d=work(user);
printf("There are %d years %d month %d days.\n",d.year,d.month,d.day);
getchar();
}
如何利用switch语句与if语句的巢状编写一个C++程式
我使用C#帮你解决吧,其实C#和C++是相通的,程式码如下:
static void Main(string[] args)
{
Console.WriteLine("请输入你的考分:");
int score = Convert.ToInt32(Console.ReadLine());
if (score >= 0 && score <= 100)
{
int flag = score / 10;
switch (flag)
{
case 10: Console.WriteLine("优"); break;
case 9: Console.WriteLine("优"); break;
case 8: Console.WriteLine("良"); break;
case 7: Console.WriteLine("中"); break;
case 6: Console.WriteLine("及格"); break;
default: Console.WriteLine("不及格"); break;
}
}
else
{
Console.WriteLine("你输入的分数不正确!");
}
Console.ReadKey();
}
执行没问题
分页:
1
23