#include <stdio.h> #include <stdlib.h> fun (int n, int *a) {int i, j, p, t; for (j = 0; j<n-1 ; j++

求大大帮忙把这个程序解剖一下。。随便传授点经验。。。谢了、
#include <stdio.h>
#include <stdlib.h>
fun (int n, int *a)
{int i, j, p, t;
for (j = 0; j<n-1 ; j++)
{p = j;

for (i=j+1; i<n ; i++)
if (a[p]>a[i])

p=i;
if (p!=j)
{t = a[j]; a[j] = a[p]; a[p] = t;}
}
}
putarr(int n, int *z)
{int i;
for (i = 1; i <= n; i++, z++)
{printf("%4d", *z);
if (!(i%10)) printf("\n");
} printf("\n");
}
main()
{int aa[20]={9,3,0,4,1,2,5,6,8,10,7}, n=11;
printf("\n\nBefore sorting %d numbers:\n", n); putarr(n, aa);
fun(n, aa);
printf("\nAfter sorting %d numbers:\n", n); putarr(n, aa);
}
不好意思

你是想把aa按从小到大顺序排列吧,程序没有错误,不知道你哪里弄不明白,还是给你分析下吧
fun函数负责排序,putarr函数负责输出
fun (int n, int *a) //接受main函数传进来的参数
{int i, j, p, t; //设置临时变量
//开始2个循环
for (j = 0; j<n-1 ; j++) //取数组元素的第一个元素做为比较的第一个数(这样说有局限性,因为是循环哦,不过容易理解)
{p = j; //把每一次循环的数组下标保存到变量j中
for (i=j+1; i<n ; i++) //取相对第一次取出的数的下一个元素和第一次取出的数做比较
if (a[p]>a[i])
p=i; //把较小的那个元素的下标保存到变量p中
if (p!=j) //检查较小的那个数是不是第一取出来的数,如果是就保持不变,
{t = a[j]; a[j] = a[p]; a[p] = t;} //如果不是就把他们位置交换
}
}
语言表达能力有限,哈哈, 不过相信你应该能看的懂,putarr这个函数就不用说了吧,负责输出的
温馨提示:内容为网友见解,仅供参考
第1个回答  2011-03-09
#include <math.h>
/**************found**************/
int fun(int a,int b,int c) //返回类型应该设置为int
{ if(a+b>c && b+c>a && a+c>b) {
if(a==b && b==c)
return 3;
else if(a==b||b==c||a==c)
return 2;
/**************found**************/
else return 1; //return 写成 retrun,且缺分号;
}
else return 0;
}
main()
{ int a,b,c,shape;
printf("\nInput a,b,c: "); scanf("%d%d%d",&a,&b,&c);
printf("\na=%d, b=%d, c=%d\n",a,b,c);
shape =fun(a,b,c);
printf("\n\nThe shape : %d\n",shape);
}
第2个回答  2011-03-08
这个是你问的问题不全面无法作答

...<stdlib.h> fun (int n, int *a) {int i, j, p, t; for (j = 0...
fun函数负责排序,putarr函数负责输出 fun (int n, int *a) \/\/接受main函数传进来的参数 {int i, j, p, t; \/\/设置临时变量 \/\/开始2个循环 for (j = 0; j<n-1 ; j++) \/\/取数组元素的第一个元素做为比较的第一个数(这样说有局限性,因为是循环哦,不过容易理解){p = j...

C++中 #include<stdio.h> #include<stdlib.h> 什么意思?
include就是要导入函数库,也就是说,你这个程序会用到那些功能,就导入哪个库 stdio.h,这个就是程序的输入输出函数库,它提供int getchar()和int putchar()等函数 stdlib.h,这个是最常用的系统函数库,提供rand()、srand()、exit()等函数 ...

#include<stdio.h> #include<stdlib.h>
从fun的作用来看,fun函数在主程序中的作用可以简化为下面:int fun(int n){ return n;} 因此,结果是20显而易见。3 p=(int*)malloc(sizeof(int)); \/\/这个表示动态分配一个整型存储单元,并将这个单元的地址赋给变量p,即p指向动态分配的这个单元。

#include <stdio.h> #include <stdlib.h> int main(int argc, char *...
include <stdio.h>,#include <stdlib.h>表示头文件,说明下面需要用到标准输入输出函数和标准系统函数,int main表示定义为int类型的主函数,int argc,char *argv[]是分别定义为int类型的argc变量和char类型的*argv[]字符变量

#include<stdlib.h> #include<stdio.h> #define N 1000 void fun(cha...
char *p=tt\/\/定义一个char型指针变量p并初始化,该指针变量的初始化是指向形参即char型指针tt,意思就是将形参char型指针tt的地址付给char型指针p。

#include<stdio.h> #include<string.h> #include<stdlib.h> #includ...
A<p>修改后的代码:(已检测,可执行)<\/p><pre t="code" l="cpp">#include<stdio.h>%D%A#include<string.h>%D%A#include<stdlib.h>%D%Avoidmain()%D%A{%D%Achar*a;%D%Aintm,n,i,j;%D%Aprintf("你要输入几个字母:");%D%Ascanf("%d",&n);%D%A%D%Aa=(char*)malloc((n+...

C语言里面的这个#include <stdio.h>什么意思啊?
stdio.h是头文件,标准输入输出函数库。头文件是扩展名为 .h 的文件,包含了 C 函数声明和宏定义,被多个源文件中引用共享。有两种类型的头文件:程序员编写的头文件和编译器自带的头文件。在程序中要使用头文件,需要使用 C 预处理指令 #include 来引用它。 stdio.h 头文件,它是编译器自带的头...

#include<stdio.h> #include<stdlib.h> #include<string.h> #includ...
#include<stdio.h>#include<stdlib.h>#include<string.h>#include<conio.h>struct ima{ int id; char name[20]; char produce[30]; int number; float price;};void Append();void Selldelete();void Amend();void Findin();void Browse();void colorsetting();void Endprogram();void initialization(...

编写函数int fun(int *a,int n),实现把数组a中最大数和最小数交换 完整...
代码如下:include <stdio.h>#include <stdlib.h>#define N 10int fun(int *a, int n){int j, temp;int *max = a, *min = a;for (j = 0; j < 10; j++) {if (*max < *(a + j))max = (a + j);if (*min > *(a + j))min = (a + j);}temp = *max;*max...

#include <stdio.h> #include <stdlib.h> typedef struct s { int...
include <stdio.h> \/\/调用头文件 include <stdlib.h> \/\/调用头文件 typedef struct s \/\/声明一个s结构体(s为该结构体的名称){ int data; \/\/声明结构体的成员 该成员是一个整形变量 struct s *next; \/\/声明结构体的成员,该成员是另外一个结构体 }NODE; \/\/声明结构体...

相似回答