函数变量为数组a[n]时,调用函数时应用f(a)的形式。
完整代码如下:
#include<stdio.h>
#include<string.h>
void f(char a[],int i)
{
if(i>0&&i<4)
{
printf(" %c",a[i]);
}
else
{
printf("%c",a[i]);
}
}
int main()
{
int m,n,i,j=0;
char a[100];
gets(a);
for(i=0; i<4; i++)
f(a,i);
return 0;
}
宏定义 闰年
#include<stdio.h>
#define LEAP_YEAR(y) (y%4==0&&y%100!=0||y%400==0?printf("L"):printf("N"))
int main()
{
int year;
scanf("%d",&year);
LEAP_YEAR(year);
return 0;
}
3 ?的使用
#include<stdio.h>
#define M(a,b,c) a>b?(a>c?a:c):(b>c?b:c)
float Max(float m,float n)
{
if(m>n)
{
return m;
}
else
{
return n;
}
}
int main()
{
float a,b,c;
scanf("%f %f %f",&a,&b,&c);
//调用函数输出三个数中最大的数
printf("%.3f",Max(a,Max(b,c)));
printf("\n");
//使用宏定义输出的三个数中最大的数
printf("%.3f",M(a,b,c));
return 0;
}
4 巧用循环打印替代死板的便利
#include<stdio.h>
int main()
{
float a;
int i,j;
scanf("%f",&a);
for(i=0;i<3;i++)
{
for(j=0;j<=i;j++)
{
printf("%6.2f ",a);
}
printf("\n");
}
return 0;
}
5 gets()输出字符时也包含空格在内,所以数组分类必须有这种情况。
#include<stdio.h>
#include<string.h>
int main()
{
char a[100],i,j,n;
gets(a);
n=strlen(a);
for(i=0;i<n;i++)
{
if(a[i]=='z')
a[i]='a';
else if(a[i]>='a'&&a[i]<'z')a[i]=a[i]+1;
else ;
}
for(i=0;i<n;i++)
printf("%c",a[i]);
return 0;
}