该楼层疑似违规已被系统折叠 隐藏此楼查看此楼
main()
{ int year;
printf("Input year:");
scanf("%d",&year);
if(LEAP_YEAR(year))
printf("%d is a leap year.\n",year);
else
printf("%d is not a leap year.\n",year);
}
(5)
/*习题8-2-5.h */
#ifndef __X8_2_5_H
#define __X8_2_5_H
#define AVER(a,b,c) (a+b+c)/3.0
#endif
/*习题8-2-5 */
#include "X8_2_5.h"
main()
{ int a,b,c;
printf("Input three integers a,b,c:");
scanf("%d,%d,%d",&a,&b,&c);
printf("Average is %f.\n",AVER(a,b,c));
}
第9章
4.编程题
(1)
/*习题9-4-1 */
#include
#include
main()
{ char *str1[20],*str2[20],*str3[20];
char swap();
printf("Input three line:\n");
gets(str1);
gets(str2);
gets(str3);
if(strcmp(str1,str2)>0) swap(str1,str2);
if(strcmp(str1,str3)>0) swap(str1,str3);
if(strcmp(str2,str3)>0) swap(str2,str3);
printf("Now, the order is:\n");
printf("%s\n%s\n%s\n",str1,str2,str3);
}
char swap (char *p1,char*p2) /*交换两个字符串*/
{ char *p[20];
strcpy(p,p1); strcpy(p1,p2); strcpy(p2,p);
}
(2)
/*习题9-4-2 */
main()
{ int number[20],n,m,i;
printf("How many numbers?"); /*共有多少个数*/
scanf("%d",&n);
printf("Input %d numbers:\n",n); /*输入n个数*/
for(i=0;i
scanf("%d",&number[i]);
printf("How many place you want to move?"); /*后移多少个位置*/
scanf("%d",&m);
move(number,n,m); /*调用move函数*/
printf("Now,they are:\n");
for(i=0;i
printf("%d ",number[i]);
}
move(int array[20],int n,int m) /*循环后移函数*/
{ int *p,array_end;
array_end=*(array+n-1);
for(p=array+n-1;p>array;p--)
*p=*(p-1);
*array=array_end;
m--;
if(m>0) move(array,n,m); /*递归调用,当循环次数m减至0时,停止调用*/
}
(3)
/*习题9-4-3 */
#include
#include
#define TOTAL 7
int mseek(char*str[],char xstr[],int n)
{ int i;
for(i=0; i
{ if(strcmp(str[i],xstr)==0)
return 1;
}
return 0;
}
main()
{ char*name[TOTAL]={"Lining","Linshan","Tianyuan","Zhangqiang","Haipo","Fangbing"};
char xname[20];
printf("enter a name:");
gets(xname);
if(mseek(name,xname,TOTAL))
printf("Found!\n");
else
printf("Not found!\n");
}
(4)
/*习题9-4-4 */
#include
#include
int fun(char *str,int num[4])
{ int i;
for(i=0; i<4; i++) num[i]=0;
while(*str!='\0')
{ if(*str>='a' && *str<='z' || *str>='A' && *str<='Z')
num[0]++;
else if(*str==' ')
num[1]++;
else if(*str>='0' && *str<='9')
num[2]++;
else
num[3]++;
str++;
}
}
#define N 80
main()
{ int string[N],n[4],i;
gets(string);
fun(string,n);
for(i=0; i<4; i++)
printf("%d\t",n[i]);
}
(5)
/*习题9-4-5 */
#include
main()
{ int a[5][5],*p,i,j;
void change(int *p);
printf("Input matrix:\n");
for(i=0;i<5;i++) /*输入矩阵*/
for(j=0;j<5;j++)
scanf("%d",&a[i][j]);
p=&a[0][0]; /*使p指向0行0列元素*/
change(p); /*调用函数, 实现交换*/
printf("Now, matrix: \n");
for(i=0;i<5;i++) /*输出已交换的矩阵*/
{ for(j=0;j<5;j++)
printf("%4d",a[i][j]);
printf("\n");
}
}
void change(int *p) /*交换函数*/
{ int i,j,temp;
int *pmax,*pmin;