急求教:C语言的一个经典例题 救急啊,急求一关于C语言指针的经典例题,明天讲解用!复制党勿...

作者&投稿:刀彦 (若有异议请与网页底部的电邮联系)
//(int)s/500,主要算法思想
#include<stdio.h>
int main()
{
float s,sum=0;
printf("输入工资数:");
scanf("%f",&s);
switch((int)s/500)
{
case 0:sum=s;break;
case 1:sum=s*0.95;break;
case 2:
case 3:sum=s*0.92;break;
case 4:
case 5:sum=s*0.90;break;
case 6:sum=s*0.85;break;
default:sum=s*0.85;
}
printf("实发工资数:%.2f\n",sum);
return 0;

}
/*
我试了两次,仅供参考:

输入工资数:4000
实发工资数:3400.00

输入工资数:2500
实发工资数:2250.00

至于输入工资到实发工资的公式可以根据题意写出来,可能跟yanh0606写的公式差不多
*/

#include<stdio.h>
#include<math.h>
int
main(void)
{
double
a,b,c;
double
x1,x2,x3,y1,y2,y3;
double
cosa,sina,square;
printf("请输入第一个点\n");
scanf("%lf,%lf",&x1,&y1);
printf("请输入第二个点\n");
scanf("%lf,%lf",&x2,&y2);
printf("请输入第三个点\n");
scanf("%lf,%lf",&x3,&y3);
/*
注意:
对于double类型来说
当用scanf给double类型赋值时
转换说明符应该是%lf,
或者%lf
而不是%f,
而是用printf给double
类型输出时,
则可以是用%f作为转换
说明符,
不过因此会缺失精度.
也就是类型反向提升
(类型降级)
所以为了准确度考虑,
建议是用%lf
*/
a=sqrt((x1-x2)*(x1-x2)+(y1-y2)*(y1-y2));
b=sqrt((x1-x3)*(x1-x3)+(y1-y3)*(y1-y3));
c=sqrt((x3-x2)*(x3-x2)+(y3-y2)*(y3-y2));
cosa
=
(b*b+c*c-a*a)/(2*b*c);
sina
=
sqrt(1-cosa*cosa);
square
=
b*c*sina/2;
/*
此处三角形面积公式为s
=
b*c*sina/2
*/
/*
而不是a*b*sina/2,
这点是值得注意的
*/
printf("三角形的面积为:%.2lf\n",
square);
/*
square的类型是double,
因此使用%lf输出
*/
return
0;
}
/*
程序测试,
粗体
代表输入
*/
请输入第一个点
0,0
请输入第二个点
3,0
请输入第三个点
3,4
三角形的面积为:6.00

#include<stdio.h>
void
mian()
{
float
s,s1;
printf("输入原始知工资道数");
csanf("%f",&s);
if(s<=500)
s1=s;
else
s1=s/100;
switch(s)
{
case
5:
s1=500+(s-500)*0.05;
break;
case
10:
s1=500+(1000-500)*0.05+(s-1000)*0.08;
break;
case
20:
s1=500+(1000-500)*0.05+(2000-1000)*0.08+(s-2000)*0.1;
break;
default:
s1=500+(1000-500)*0.05+(2000-1000)*0.08+(3000-2000)*0.1+(s-3000)*0.15;
break;
}
printf("实发工专资数是属:%f",s1);
}

#include<stdio.h>
void mian()
{
float s,s1;
printf("输入原始工资数");
csanf("%f",&s);
if(s<=500)
s1=s;
else
s1=s/100;
switch(s)
{
case 5:
s1=500+(s-500)*0.05; break;
case 10:
s1=500+(1000-500)*0.05+(s-1000)*0.08;
break;
case 20:
s1=500+(1000-500)*0.05+(2000-1000)*0.08+(s-2000)*0.1;
break;
default:
s1=500+(1000-500)*0.05+(2000-1000)*0.08+(3000-2000)*0.1+(s-3000)*0.15;
break;
}
printf("实发工资数是:%f",s1);
}

急求!!请教一个关于C语言的问题~

I等于10 所以从这里开始
case 10:
case 11:i-=1; /*i=i-1;*/
default:i+=1; /*i=i+1;*/
全部执行

结果 I减1 ,I加1 结果I又是10


如果是这样,那就每个语句执行完就退出switch了,因为有个break跳出循环的语句。
switch(i)
{ case 9:i+=1; break;
case 10: break;
case 11:i-=1; break;
default:i+=1; break;
}

号啊大哥.
还有,你的算法正确吗?这一步交换;
for(;i<=n;i++)
{
t=*(s+i);
*(s+i)=*(s+n-i);
*(s+n-i)=t
}
简直就是好玩,换过去了,又换过来.
写成:
for(;i<=n/2;i++)
{
t=*(s+i);
*(s+i)=*(s+n-i);
*(s+n-i)=t
}
就行了.还有啊,写程序的时候,要注意风格!
宁愿程序长一点,也要有好的风格.要不写得公不公,母不母的,只会让自己的程序变得难看.

初学者求教简单的C语言问题?
答:问题1:将case 1, case 2, case 3 依次改作case '1',case '2', case '3'就好了。因为scanf("%c",&choice);这句表示choice是以字符形式接收输入的数据,所以case的形式应该也是字符的形式!case部分如下修改就好了 scanf("%c",&choice)while(choice!=‘4’){ scanf("%c",&choice)swit...

菜鸟求教一道极简单的C语言题?
答:int max(float x,float y){float z;z=x>y?x:y;return(z);} 这个函数的返回类型是int型,而你的返回值是float z,最后还是取得整型返回的截取结果的整数部分返回 输入的时候因为scanf("%f,%f",&a,&b);中间有个逗号,所有你要这样输入1.5,2.3得到的结果是2 ...

一个C语言编程例题,求教……
答://有一个数字,除以2余1,除以3余2,除以5余4,除以6余5,除以7整除。include <stdio.h> main(){ int x;for(x=1;x<10000;++x){ if((x%2)==1&&(x%3)==2&&(x%5)==4&&(x%6)==5&&(x%7)==0)printf("%3d ",x);} } ...

求教C语言的一道题!谢谢!
答:a*a=144,a-=a*a时a=12得到a=-132,a+=()此时,()=-132,a=-132,最后a =-264

求教C语言问题!!!
答:include <stdio.h>int main(){ int i; double a=0,b=0,c=0.01; for(i=1;i<=30;i++) { a+=100000; b+=c; c*=2; } printf("陌生人给百万富翁%.2lf元\n", a); printf("百万富翁给陌生人%.2lf元\n", b);} ...

用C语言写一个加法运算的代码怎么写?
答:知识扩展:C语言是一门通用计算机编程语言,应用广泛。C语言的设计目标是提供一种能以简易的方式编译、处理低级存储器、产生少量的机器码以及不需要任何运行环境支持便能运行的编程语言。尽管C语言提供了许多低级处理的功能,但仍然保持着良好跨平台的特性,以一个标准规格写出的C语言程序可在许多电脑平台上...

C语言题目求教
答:首先要知道,C里面非0数字转换为条件真,0转换为条件假 第一题:i--:是对i减1运算 第二题:++j:是对J进行加1运算 是取模运算 ++j%3就是先对j加1,然后求j除以3的余数。而!运算就是逻辑非运算,!真的结果为假,!假的结果为真。第三题:!(n%5)略 ...

求教一个C语言问题
答:include "stdio.h"void del_a(int* a,int i , int iLen){ int j;//for(j=i;j<9;j++)for(j=i;j<iLen-1;j++) //这里的数组长度是iLen,减一个数组长度变为iLen-1 a[j]=a[j+1];} printf_a(int* a , int iLen ){ int i=0;int *p=a;//while((*p)!='\0') //p...

C语言编程问题,在线求教!!
答:第一个界面 include"stdio.h"define n 1234 define m 1234 main(){ int a, b, i;printf("ATM取款机\n");for (i = 0; i < 3; i++){ printf("请输入卡号:");scanf("%d", &a);printf("请输入密码:");scanf("%d", &b);if (a == n & b == m){ printf("密码正确"...

一道C语言棋盘最优路径的题目,求教
答:这题还是有点意思的。正如diordna所说,因为涉及到全局最优,大小又是1000x1000,感觉广搜有点困难,所以打算试试DP。。思路如下,不知道对不对。。Part.1设map[i][j]保存棋盘格子的价值 (i = 0..n-1, j = 0..m-1)设f[i][j][k]记录棋盘(i, j)位置的最大价值和 (i = 0..n-1...