22017/12/7C语言作业

#include <stdio.h>
#include <string.h>
#include <stdlib.h>
int * shenqing(int num)  //申请空间
{
 int *p=(int *)malloc(num*sizeof(int));
 if(NULL==p)
 {
  return p;
 }
 memset(p,0,num*sizeof(int));
 return p;
}
void set_arr(int *p,int num) //建立数组
{
 int i=0;
 printf("请输入你要进行计算的数组元素:\n");
 for(i=0;i<num;i++)
 {
  scanf("%d",p++);
 }
}
void show_arr(int *p,int num) //遍历数组
{
 int i=0;
 for(i=0;i<num;i++)
 {
  printf(" %d",*p++);
 }
 printf("\n");
}
int jisuan(int *p,int num)
{
 int i=0;
 int sum=(*p)+(*(p+1))+(*(p+2));
 int arr[3]={0};
 for(i=0;i<num-2;i++)
 {
  if((*(p+i)+*(p+i+1)+*(p+i+2))>sum)
  {
   sum=*(p+i)+*(p+i+1)+*(p+i+2);
   arr[0]=*(p+i);
   arr[1]=*(p+i+1);
   arr[2]=*(p+i+2);
  }
 }
 printf("{%d,%d,%d}",arr[0],arr[1],arr[2]);
 return sum;
}
int main(void)
{
 int num=0,sum=0;
 printf("请输入你要计算的数组的大小:\n");
 scanf("%d",&num);
 int *p=shenqing(num);
 set_arr(p,num);
 show_arr(p,num);
 sum=jisuan(p,num);
 printf("=%d.\n",sum);
 if(NULL!=p)
 {
  free(p);
  p=NULL;
 }
 return 0;
 
 
}


#include <stdio.h>
void func(unsigned short *a)
{
 short b=*a;
 short c=0xff;
 c=(c&b)<<8;
 b=b>>8;
 *a=c+b;
}
int main(void)
{
 short a=0,b=0;
 printf("请输入两个字节的十六进制数:\n");
 scanf(" %x",&a);
 unsigned short *p=(unsigned short *)&a;
 func(p);
 printf("0x%x\n",*p);
 return 0;
 
}
#include <stdio.h>
int main(void)
{
 int * p;
 p=(int *)0x67a9;
 *p=0xaa55;
 printf("%x\n",*p);
 return 0;
}
员工问题:
#include <stdio.h>
int func(int month)
{
 int arr[100];
 int i=0;
 for(i=0;i<100;i++)
 {
  if(0==i||1==i||2==i)
  {
   arr[i]=1;
  }
  if(i>2)
  {
   arr[i]=arr[i-1]+arr[i-3];
  }
 }
 return arr[month-1];
}
int main(void)
{
 int month=0,people=0;
 printf("请输入你要计算的月份:\n");
 scanf("%d",&month);
 people=func(month);
 printf("people=%d.\n",people);
 return 0;
}
方法二://有错误
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
int func(int month)
{
 int *p=(int *)malloc((month-1)*sizeof(int));
 if(NULL==p)
 {
  printf("error.\n");
 }
 memset=(p,0,(month-1)*sizeof(int);
 int i=0;
 for(i=0;i<100;i++)
 {
  if(0==i||1==i||2==i)
  {
   p[i]=1;
  }
  if(i>2)
  {
   p[i]=p[i-1]+p[i-3];
  }
 }
 return p[month-1];
 free(p);
}
int main(void)
{
 int month=0,people=0;
 printf("请输入你要计算的月份:\n");
 scanf("%d",&month);
 people=func(month);
 printf("people=%d.\n",people);
 return 0;
}
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值