10-1
#include <stdio.h>
void adjust_point(int *n)
{
if(*n<0)
{
*n=0;
}
if(*n>100)
{
*n=100;
}
return;
}
int main(void)
{
int a;
printf("请输入一个整数:\n");
scanf("%d",&a);
adjust_point(&a);
printf("最终的值是:%d",a);
}
10-2
#include <stdio.h>
void increment_date(int *y,int*m,int*d)
{
//以31号为结束的月份
if(*m==1||*m==3||*m==5||*m==7||*m==8||*m==10)
{
if(*d==31)
{
*d=1;
*m+=1;
}
else
{
*d+=1;
}
}
//12月份单独讨论
if((*m==12)&&(*d==31))
{
*y+=1;
*m=1;
*d=1;
}
if((*m==12)&&(*d<=31))
{
*d+=1;
}
//以30号为结束的月份
if(*m==4||*m==6||*m==9||*m==11)
{
if(*d==30)
{
*d=1;
*m+=1;
}
else
{
*d+=1;
}
}
//2月份单独讨论
if(*m==2)
{
if((*y%4==0)&&(*y%100!=0))
{
if(*d==29)
{
*d=1;
*m+=1;
}
else
{
*d+=1;
}
}
else
{
if(*d==28)
{
*d=1;
*m+=1;
}
else
{
*d+=1;
}
}
}
}
void decrement_date(int *y,int*m,int*d)
{
//以1号为开始的月份,前推是30号
if(*m==5||*m==7||*m==8||*m==10||*m==12)
{
if(*d==1)
{
*d=30;
*m-=1;
}
else
{
*d-=1;
}
}
//1.1单独讨论
if((*m==1)&&(*d==1))
{
*y-=1;
*m=12;
*d=31;
}
if((*m==1)&&(*d>=1))
{
*d-=1;
}
//以1号为开始的月份,前推是12.31号
if(*m==2||*m==4||*m==6||*m==9||*m==11)
{
if(*d==1)
{
*d=31;
*m-=1;
}
else
{
*d-=1;
}
}
//3月份单独讨论,因为3.1号前是2.29还是2.28要根据闰年来判断
if(*m==3)
{
if((*y%4==0)&&(*y%100!=0))
{
if(*d==1)
{
*d=29;
*m-=1;
}
else
{
*d-=1;
}
}
else
{
if(*d==1)
{
*d=28;
*m-=1;
}
else
{
*d-=1;
}
}
}
}
int main(void)
{
int a,b,c;
printf("请输入年月日(用逗号隔开):\n");
scanf("%d,%d,%d",&a,&b,&c);
decrement_date(&a,&b,&c);
printf("该日期的前一天是:%d,%d,%d",a,b,c);
printf("\n");
increment_date(&a,&b,&c);//抵消decrement_date
increment_date(&a,&b,&c);
printf("该日期的后一天是:%d,%d,%d",a,b,c);
}
10-3
#include <stdio.h>
void sort3(int *n1,int *n2,int *n3)
{
int a[3]= {*n1,*n2,*n3};
int i,j;
//冒泡排序法
for(i=0; i<2; i++)
{
for(j=2; j>i; j--)
{
if(a[j-1]>a[j])
{
int t=a[j];
a[j]=a[j-1];
a[j-1]=t;
}
}
}
printf("升序后:");
for(i=0; i<3; i++)
{
printf("%d,",a[i]);
}
}
int main(void)
{
int a,b,c;
printf("请输入三个整数,并且用逗号隔开:");
scanf("%d,%d,%d",&a,&b,&c);
sort3(&a,&b,&c);
}
10-4
#include <stdio.h>
void set_idx(int *v,int n)
{
int i;
for(i=0; i<n; i++)
{
*(v+i)=i;
printf("*(v+%d)=%d",*(v+i),i);
printf("\n");
}
}
int main(void)
{
int a[]= {0};
int b;
printf("请输入一个整数:");
scanf("%d",&b);
set_idx(a,b);
}
10-5
#include <stdio.h>
void ary_set(int v[], int n, int val)
{
int i;
for (i = 0; i < n; i++)
v[i] = val;
}
int main(void)
{
int i;
int a[] = { 1, 2, 3, 4, 5 };
ary_set(&a[2], 5, 99);
for (i = 0; i < 5; i++)
printf("a[%d] = %d\n", i, a[i]);
return 0;
}