TA的每日心情 | 开心 2021-12-13 21:45 |
---|
签到天数: 15 天 [LV.4]偶尔看看III
|
- [code]1.互换两个数字:
- # include<stdio.h>
- void g(int * p,int * q)
- {
- int t; //如果要互换*p和*q的值,则t必须定义为int,
- t = * p; //不能定义为int*,否则会有语法错误.
- * p = * q;
- * q = t;
- }
- int main()
- {
- int a=3, b=5;
- g(&a,&b);
- printf("a = %d ",a);
- printf("b = %d ",b);
- return 0;
- }
- /*
- #include<stdio.h>
- void f(int a,int b) //该函数不能完成互换功能!
- {
- int t;
- t = a;
- a = b;
- b = t;
- }
- int main()
- {
- int a=3,b=5;
- f(a,b);
- printf("a = %d ",a);
- printf("b = %d ",b);
- return 0;
- }
- */
- /*
- # include<stdio.h>
- void g(int * p,int * q) //不能完成互换功能
- {
- int * t; //如果要互换指针变量,必须是int,不能是int*
- t = p;
- p = q;
- q = t;
- }
- int main()
- {
- int a=3, b=5;
- g(&a,&b);
- printf("a = %d ",a);
- printf("b = %d ",b);
- return 0;
- }
- */
- 2.输入n个数,按从小到大的顺序输出:
- #include <stdio.h>
- #include <malloc.h>
- int main(void)
- {
- int i,j,t,len;
- int *p;
- printf("请输入所排数的个数:\n");
- scanf("%d",&len);
- p=(int *)malloc(4*len); // 对数组赋值
- printf("输入所要排序的数\n");
- for(i=0;i<len;++i)
- scanf("%d",&p[i]);
- printf("\n");
- for(i=0;i<len-1;++i) //大方面的循环,次数结束一次得出一个最大值放在最后
- for(j=0;j<len-i-1;++j) //在每趟中进行循环 要考虑到下面的j+1
- if(p[j]>p[j+1]) //相邻两个数比较
- {
- t=p[j];p[j]=p[j+1];p[j+1]=t;
- }
- for(i=0;i<len;++i) //对结果输出
- printf("%d ",p[i]);
- return 0;
- }
- /*结论非常重要
- for (i=0;i<n-1;++i)
- for (j=0;j<n-1-i;++j)
- if (a[j]>a[j+1])
- {
- t=a[j];a[j]=a[j+1];a[j+1]=t;
- }
- */
复制代码 [/code]
|
|