C语言编写程序,按人机对话的形式输入两个人的身高,并且计算身高的差

Python014

C语言编写程序,按人机对话的形式输入两个人的身高,并且计算身高的差,第1张

楼主你好

具体代码如下:

#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:非常痛恨百度知道的删除空格做法,原本很漂亮的程序变的面目全非了!!!

如果对您有帮助,请记得采纳为满意答案,谢谢!祝您生活愉快!