1.使用函数计算分段函数的值
#include<stdio.h>
#include<string.h>
//#define n1000
#define t10000
#include <math.h>
int main(void)
{
int x;
scanf("%d",&x);
if(x>0) printf("1");
else if(x==0)printf("0");
else printf("-1");
return 0;
}
2.使用函数求奇数和:
#include<stdio.h>
#include<string.h>
//#define n1000
#define t10000
#include <math.h>
int even (int n);
int main(void)
{
int n,sum=0;
scanf("%d",&n);
while(n>0){//满足题意,以零或负数为结束标志
if(even(n)!=1){
sum+=n;
}
scanf("%d",&n);
}
printf("%d",sum);
return 0;
}
int even(int n)
{
if(n%2==0) return 1;
else return 0;
}
3.使用函数计算两点间的距离:
#include<stdio.h>
#include<math.h>
double dist(double x1,double x2,double y1,double y2);
int main(void)
{
double x1,x2,y1,y2;
scanf("%lf %lf %lf %lf",&x1,&x2,&y1,&y2);
printf("%.2f",dist(x1,x2,y1,y2));
return 0;
}
double dist(double x1,double x2,double y1,double y2)
{
double b=(x1-x2)*(x1-x2);
double c=(y1-y2)*(y1-y2);
double a =sqrt(b+c);
return a;
}
4.利用函数计算素数个数并求和
#include<stdio.h>
#include<math.h>
int prime(int m);
int main(void)
{
int m,n,count=0,sum=0;
scanf("%d %d",&m,&n);
for(int i=m;i<=n;i++){
if(prime(i)==1)
{
count ++;//统计一共有多少个素数
sum+=i;//统计所有素数的和
}
}
printf("一共有%d个素数\n",count);
printf("这些素数的和是%d",sum);
return 0;
}
int prime(int m)
{
if(m==2) return 1;
if(m<=1) return 0;
if(m>2){
for(int j=2;j<m;j++){
if(m%j==0) return 0;
}
return 1;
}
}
5.使用函数统计指定数字的个数:
#include<stdio.h>
#include<math.h>
int countdigit(int number,int digit);
int main(void)
{
int n,x;
scanf("%d %d",&n,&x);
printf("%d",countdigit(n,x));
return 0;
}
int countdigit(int number,int digit)
{
int count =0;
while(number>0){
if(number%10==digit)
count++;
number/=10;
}
return count;
}
6.使用函数输出水仙花数:
#include<stdio.h>
#include<math.h>
int is(int number);
int main(void)
{
int n,m;
scanf("%d %d",&m,&n);
for(int i=m;i<=n;i++){
if(is(i)==1)
printf("%d ",i);
}
return 0;
}
int is(int number)
{
int b=number;//1234
int sum=0;
while(number>0){
int a=number%10;//4
sum+=pow(a,3);//4的3次方
number/=10;//123
}
if(sum==b) return 1;
else return 0;
}
7.使用函数求余弦函数的近似值:
#include<stdio.h>
#include<math.h>
double fact(int n)//计算阶乘的函数
{
int i;
double f=1;
for(i=1;i<=n;i++)
{
f*=i;
}
return f;
}
double fumcos(double e,double x)//计算cosx的函数
{
int flag=1,i=0;
double cosx=0,item=1;//item 必须为1,才能进while循环 。cosx为0,则直接从第一项开始累加
while(fabs(item)>=e){
item=flag*pow(x,i)/fact(i);
cosx+=item;
i+=2;
flag=-flag;
}
cosx+=item;
return cosx;
}
int main(void)
{
double e,x;
printf("Enter e:");
scanf("%lf",&e);
printf("Enter x:");
scanf("%lf",&x);
printf("cosx=%lf",fumcos(e,x));
return 0;
}
8.输入一个正整数n,输出n行空心的数字金字塔:
这个是我写的,错啦~(请看完)
#include<stdio.h>
void hollow_pyramid(int n);
int main(void)
{
int n;
scanf("%d",&n);
hollow_pyramid(n);
return 0;
}
void hollow_pyramid(int n)
{
int i,j;
for(i=1;i<=(n-1);i++)//先打印第一行的4个空格
{
printf(" ");
}
printf("1\n");
for(i=2;i<=n-1;i++) {//开始完成中间几行的
for(j=1;j<=n-2;j++){
printf(" ");
}printf("%d",i);
for(j=1;j<=i-1;j++){
printf(" ");
} printf("%d\n",i);
}
for(i=1;i<=2*(n-1);i++)
printf("%d",n);
}
(这个是正确答案哦)搜的嘻嘻
#include<stdio.h>//习题5.8
void hollow_pyramid(int n)
{
int i,j;
for(i=1;i<n;i++)//共n-1行
{
for(j=1;j<=n-i;j++)//上三角空格
{
printf(" ");
}
printf("%d",i);//左斜下数字,只打印一个数字,不用在内循环里
if(i==1){
printf("\n");
continue;
}
for(j=1;j<=2*(i-1)-1;j++)//中间三角空格 .i=2时,j=1;i=3时,j=3
{
printf(" ");
}
printf("%d",i);//右斜下数字
printf("\n");
}
for(j=1;j<=2*n-1;j++)//底层数字
{
printf("%d",n);
}
}
int main(void)
{
int n;
printf("Enter n:");
scanf("%d",&n);
hollow_pyramid(n);
return 0;
}