具体代码如下:
#include<stdio.h>
int main()
{
double height_1,height_2
double dif
printf("请输入两个人的身高(米/m):")
scanf("%lf%lf",&height_1,&height_2)
dif=height_1-height_2
if(dif<0)
dif=-dif
printf("它们的身高差为:%.2fm\n",dif)
}
不懂的可以问我哈
希望能帮助你哈
由于没有指明数据的来源,下面就从文本文件"data.txt"中取出一些学生的身高数据,并计算平均值,方差和标准差!代码如下:
#include<stdio.h>
#include <math.h>
#define hh printf("\n===================================\n")
void main()
{
FILE *fp
float a[520],x,avr,fc,bzc,t,sum=0.0
int i,k=0
fp=fopen("D:\\data.txt","r")
if(fp==NULL)
printf("文件打开失败!\n")
else
{
printf("身高数据:\n")
fscanf(fp,"%f",&x)
while(x!=0)
{
a[k++]=x
printf("%.0f ",x)
sum+=x
fscanf(fp,"%f",&x)
}
avr=sum/k
sum=0
for(i=0i<ki++)
sum+=(a[i]-avr)*(a[i]-avr)
fc=sum/(k-1)
bzc=sqrt(fc)hh
printf(" 学生人数:%d\n",k)
printf(" 身高均值:%.2f\n",avr)
printf(" 身高方差:%.2f\n",fc)
printf("身高标准差:%.2f\n",bzc)
}
hh
fclose(fp)
}
扩展资料:
c语言的特点
1、C语言是一个有结构化程序设计、具有变量作用域(variable scope)以及递归功能的过程式语言。
2、C语言传递参数均是以值传递(pass by value),另外也可以传递指针(a pointer passed by value)。
3、不同的变量类型可以用结构体(struct)组合在一起。
4、只有32个保留字(reserved keywords),使变量、函数命名有更多弹性。
5、部份的变量类型可以转换,例如整型和字符型变量。
6、通过指针(pointer),C语言可以容易的对存储器进行低级控制。
7、预编译处理(preprocessor)让C语言的编译更具有弹性。
第一个问题/*--------------------------------------------------------------*/
#include "stdio.h"
int md[12]=/*每个月的天数*/
int year/*年*/
int month/*月*/
int day/*日*/
int ad/*要加上的天数*/
int IsLeapYear(int y)/*判断y是否闰年*/
void AddDay(int d)/*在日期上加上d天*/
int main()
{
printf("输入年:")
scanf("%d",&year)
while(year<1)
{
printf("\n输入错误,重新输入:")
scanf("%d",&year)
}
printf("输入月:")
scanf("%d",&month)
while(month<1 || month>12)
{
printf("\n输入错误,重新输入:")
scanf("%d",&month)
}
printf("输入日:")
scanf("%d",&day)
while(day<1 || day>( month==2 ? (IsLeapYear(year) ? 29:md[month-1]) : md[month-1]) )
{/*上面这句有些复杂,因为要判断这个月的天数,还有判断是否年*/
printf("\n输入错误,重新输入:")
scanf("%d",&day)
}
printf("输入要加上的天数:")
scanf("%d",&ad)
while(ad<1)
{
printf("\n输入错误,重新输入:")
scanf("%d",&ad)
}
printf("输入的日期是 %d年%d月%d日\n",year,month,day)
AddDay(ad) /*加上ad天*/
printf("加上%d天后是 %d年%d月%d日\n",ad,year,month,day)
}
int IsLeapYear(int y) /*判断是否闰年*/
{
if((y%400 == 0)||(y%4 == 0 &&y%100 != 0))
return 1
return 0
}
void AddDay(int d)
{
if((day+d) <= md[month-1]) //如果加上d天后,还未超出本月
day = day+d
else
{
//首先减去当月剩余的天数
if(IsLeapYear(year) &&month == 2)
d -= (29-day)
else
d -= (md[month-1]-day)
month++
if(month>12) /*加上一个月后检查月份是否超出范围*/
//然后依次减去以后各个月的天数,直到不能再减为止
while( d >( month==2 ? (IsLeapYear(year) ? 29:md[month-1]) : md[month-1]) )
{
if(IsLeapYear(year) &&month == 2) //如果是闰年且是二月
d -= 29
else
d -= md[month-1]
month++
if(month>12)/*加上一个月后检查月份是否超出范围*/
}
day = d//减剩的就是day
}
}
/*---------------------------------------------------------------*/
其实三个问题中第一个还比较复杂,其余两个相对简单,先给第一个的答案吧,占个位子,有空再来补上其余两个。
第一个程序经过我调试运行通过,测试没有什么问题,其实你可以加上任意大于0的天数,该程序都能得出正确结果。另外程序中的提示字符串我是用中文,因为VC++支持中文,如果你的编译器不支持中文(如TC),请你自己把中文字符串改为英文。
ps:非常痛恨百度知道的删除空格做法,原本很漂亮的程序变的面目全非了!!!
如果对您有帮助,请记得采纳为满意答案,谢谢!祝您生活愉快!