实验一
(1)三角形输入三边求面积:顺序结构编写
输入三角形的三边x,y,z(能构成三角形),求三角形的周长c和面积s,得到的结果保留2位小数。
#include<stdio.h>
#include<math.h>
main()
{ float x,y,z,c,s,t;
scanf("%f,%f,%f",&x,&y,&z);
c=x+y+z;
t=c/2;
s=sqrt(t*(t-x)*(t-y)*(t-z));
printf("c=%.2f s=%.2f\n",c,s);
}
(2)利用循环结构编写程序,打印图案,输出的三角形如下(循环语句)
(3)功能是:输入一行字符,统计其中的字母和非字母的个数。例如,输入B5a3d,# 则输出4,5。(循环,分支结构)
#include<stdio.h>
main()
{ char ch;
int a,b;
a=b=0;
ch=getchar();
while(ch!='\n')
{ if((ch>='A'&&ch<='Z')||(ch>='a'&&ch<='z'))a++;
else
b++;
ch=getchar();
}
printf("%d,%d\n",a,b);
实验二
1、输入三角形的三边,求三角形的面积。
A.以前:
#include <stdio.h>
#include <math.h>
main()
{
float a,b,c,s;
double area;
printf("Please input three sides' length:\n");
scanf("%f,%f,%f",&a,&b,&c);
s=(a+b+c)/2;
area=sqrt(s*(s-a)*(s-b)*(s-c));
printf("The area of triangle is %5.2f",area);
}
B. 函数的方法来实现
#include <stdio.h>
#include <math.h>
double area(float x,float y,float z)
{
double s,p;
p=(x+y+z)/2;
s=sqrt(p*(p-x)*(p-y)*(p-z));
return s;
}
main()
{ float a,b,c;
printf("Please input three sides' length:\n");
scanf("%f,%f,%f",&a,&b,&c);
printf("The area of triangle is %5.2f",area(a,b,c)); }
2、编写函数,求两个整数的最大公约数。
思路二:辗转相除法
例如:(1)若a<b,则a 、b交换值;
(2)r=a%b;
(3)若r==0,转(5);
(4)a=b,b=r r=a%b;
(5)输出b
以前:
#include <stdio.h>
void main()
{
int a,b,r,sa,sb;
printf("Input two integer numbers:\n");
scanf("%d%d",&a,&b);
sa=a;sb=b;
if(a<b)
{
r=a;
a=b;
b=r;
}
r=a%b;
while(r!=0)
{
a=b;
b=r;
r=a%b;
}
printf("The greatest common divisor:%d\n",b);
printf("The lowest common multiple:%d\n",sa*sb/b);
}
答案:
#include <stdio.h>
int translate(int sa,int sb);
void main()
scanf输入整型数组
{
int a,b,result;
printf("Input two integer numbers:\n");
scanf("%d%d",&a,&b);
result=translate(a,b);
printf("The greatest common divisor:%d\n",result);
}
int translate(int a,int b)
{
int sa=a;
int sb=b;
int r;
if(a<b)
{
r=a;
a=b;
b=r;
}
r=a%b;
while(r!=0)
{
a=b;
b=r;
r=a%b;
}
return b;
}
3、输入n,输出高度为n的三角形。
用函数的方式来实现:主函数: main()输入n, 自定义函数:triangle(int n) 例如当输入:5,输出的三角形如下:
A.以前:
B. 函数的方法来实现
答案:
#include"stdio.h"
void triangle(int n);
void main()
{
int n;
scanf("%d",&n);
triangle(n);
}
void triangle(int n)
{
int i,j,k;
for(k=1;k<=n;k++)
{
for(i=0;i<n-k;i++)
printf(" ");
for(j=1;j<=2*k-1;j++)
printf("*");
printf("\n");
}
}
第三次
(1)编写一个程序,要求输入一个正整数n,计算n! 的递归调用/*1. 用递归函数法求n! */
#include <stdio.h>
long fac(int n)
{
long result;
if(n==0||n==1)
result=1;
else
result=n*fac(n-1);
return result;
}
main()
{
int n;
long f;
printf("Please enter value of n:\n");
scanf("%d",&n);
if(n<=0)
printf("Sorry! Y ou enter a wrong number!\n");
else
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。
发表评论