在QQ群里回答过的问题(集锦)

与人共享,望高手批改……永远处于不断更新中……

1、 输入数组,使最大的与第一个元素交换,最小的与最后一个元素交换,输出数组。(要求用指针实现)

作答如下:

#include <stdio.h>
#define N 100
void max_min(char *p);
void main()
{
 char *p,c='Y';
 int a[N];
 do
 {
 system("cls");
 printf("Please input a string:");
 scanf("%s",a);
 p=a;
 system("cls");
 printf("your string is:%s/n",p);
    max_min(p);
 printf("continue?(Y/N)");
 fflush(stdin);
 c=getchar();
 }while((c!='N')&&(c!='n'));
 fflush(stdin);
 getchar();
}
void max_min(char *p)
{
 char *q,*qmax,*qmin,t,*t1;
 q=p;
 qmax=p;
 qmin=p;
 while(*q!='/0')
 {
  if(*q>*qmax)
  {
   qmax=q;
   q++;
  }
  else
   q++;
  
 }
 printf("max=%c/n",*qmax);
 q=p;
 t=*q;
 *q=*qmax;
 *qmax=t;
 q=p;
 while(*q!='/0')
 {
  if(*q<*qmin)
  {
   qmin=q;
   q++;
  }
  else
   q++;
  
 }
 printf("min=%c/n",*qmin);
 q--;
 t=*q;
 *q=*qmin;
 *qmin=t;
 printf("switched:%s/n",p);
}

*********************

2、编写一个程序,输入两个正整数m,n(m>n),计算从m个元素中任取n个元素的组合数。 

#include <stdio.h>

long fun(int x)

{

       int i;

       long f=1;

       for(i=2;i<=x;i++)

              f=f*i;

       return f;

}

main()

{

       int m,n;

       long c;

       do

       {

              printf("m,n:");

              scanf("%d,%d",&m,&n);

       }while(m<=n);

       c=fun(m)/(fun(n)*fun(m-n));

       printf("c=%ld/n",c);

}

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值