【程序35】
==============================================================
【程序66】
题目:输入3个数a,b,c,按大小次序输出.
1,程序解析:操纵指针方式.
2,程序源代码:
pointer
main()
{
int n1,n2,n3;
int *pointer1,*pointer2,*pointer3;
printf(“please input 3 number:n1,n2,n3:”);
scanf(“%d,%d,%d”,&n1,&n2,&n3);
pointer1=&n1;
pointer2=&n2;
pointer3=&n3;
if(n1>n2) swap(pointer1,pointer2);
if(n1>n3) swap(pointer1,pointer3);
if(n2>n3) swap(pointer2,pointer3);
printf(“the sorted numbers are:%d,%d,%d\n”,n1,n2,n3);
}
swap(p1,p2)
int *p1,*p2;
{int p;
p=*p1;*p1=*p2;*p2=p;
}
【程序67】
题目:输入数组,最大的与第一个元素交流,最小的与末了一个元素交流,输出数组.
1,程序解析:谭浩强的书中答案有题目.
2,程序源代码:
main()
{
int number[10];
input(number);
max_min(number);
output(number);
}
input(number)
int number[10];
{int i;
for(i=0;i<9;i++)
scanf(“%d,”,&number);
scanf(“%d”,&number[9]);
}
max_min(array)
int array[10];
{int *max,*min,k,l;
int *p,*arr_end;
arr_end=array+10;
max=min=array;
for(p=array+1;p if(*p>*max) max=p;
else if(*p<*min) min=p;
k=*max;
l=*min;
*p=array[0];array[0]=l;l=*p;
*p=array[9];array[9]=k;k=*p;
return;
}
output(array)
int array[10];
{ int *p;
for(p=array;p printf(“%d,”,*p);
printf(“%d\n”,array[9]);
}
【程序68】
题目:有n个整数,使其前面各数次序向后移m个位置,末了m个数变成最前面的m个数
1,程序解析:
2,程序源代码:
main()
{
int number[20],n,m,i;
printf(“the total numbers is:”);
scanf(“%d”,&n);
printf(“back m:”);
scanf(“%d”,&m);
for(i=0;i scanf(“%d,”,&number);
scanf(“%d”,&number[n-1]);
move(number,n,m);
for(i=0;i printf(“%d,”,number);
printf(“%d”,number[n-1]);
}
move(array,n,m)
int n,m,array[20];
{
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);
}
【程序69】
题目:有n个人围成一圈,次序排号.从第一个人最早报数(从1到3报数),凡报到3的人退出圈子,问末了留下的是 原来第几号的那位.
1,程序解析:
2,程序源代码:
#define nmax 50
main()
{
int i,k,m,n,num[nmax],*p;
printf(“please input the total of numbers:”);
scanf(“%d”,&n);
p=num;
for(i=0;i (p+i)=i+1;
i=0;
k=0;
m=0;
while(m {
if((p+i)!=0) k++;
if(k3)
{ *(p+i)=0;
k=0;
m++;
}
i++;
if(in) i=0;
}
while(*p==0) p++;
printf(“%d is left\n”,*p);
}
【程序70】
题目:写一个函数,求一个字符串的长度,在main函数中输入字符串,同时输出其长度.
1,程序解析:
2,程序源代码:
main()
{
int len;
char *str[20];
printf(“please input a string:\n”);
scanf(“%s”,str);
len=length(str);
printf(“the string has %d characters.”,len);
}
length§
char *p;
{
int n;
n=0;
while(*p!=‘\0’)
{
n++;p++;
}
return n;
}
【程序71】
题目:编写input()和output()函数输入,输出5个学生的信息记录.
1,程序解析:
2,程序源代码:
#define N 5
struct student
{ char num[6];
char name[8];
int score[4];
} stu[N];
input(stu)
struct student stu[];
{ int i,j;
for(i=0;i { printf(“\n please input %d of %d\n”,i+1,N);
printf(“num:”);
scanf(“%s”,stu.num);
printf(“name:”);
scanf(“%s”,stu.name);
for(j=0;j<3;j++)
{ printf(“score %d.”,j+1);
scanf(“%d”,&stu.score[j]);
}
printf(“\n”);
}
}
print(stu)
struct student stu[];
{ int i,j;
printf(“\nNo.Name Sco1 Sco2 Sco3\n”);
for(i=0;i { printf(“%-6s%-10s”,stu.num,stu.name);
for(j=0;j<3;j++)
printf(“%-8d”,stu.score[j]);
printf(“\n”);
}}
main()
{
input();
print();
}
【程序75】
题目:放松一下,算一道简单的题目.
1,程序解析:
2,程序源代码:
main()
{
int i,n;
for(i=1;i<5;i++)
{ n=0;
if(i!=1)
n=n+1;
if(i3)
n=n+1;
if(i4)
n=n+1;
if(i!=4)
n=n+1;
if(n==3)
printf(“zhu hao shi de shi:%c”,64+i);
}
}