输入一组数字,用指针函数进行排序,输入输出都在主函数。希望给个更改的建议
其他问答
1
#include <stdio.h>
int A(int* n, int* p);
int main()
{
int i,n;
int a[100];
int p = a[100];
printf("请输入n的个数\n");
scanf("%d", &n);
printf("请输入这几个数\n");
for (i = 0; i < n; i++)
{
scanf("%d", & a[i]);
}
A(&n, &p);
for (i = 0; i < n; i++)
printf("%d ", a[i]);
return 0;
}
int A(int *n, int *p)
{
int i,j,t;
for(i=0;i<*n;i++)
for (j = i + 1; j < *n; j++)
{
if (*(p+i)>*(p+j))
{
t = *(p + i), * (p + i) = *(p + j), * (p + j) = t;
}
}
return *p;
}
-
修改处见注释,供参考:
#include<stdio.h> void A(int n, int* p);//int A(int* n, int* p); int main() { int i,n; int a[100]; int* p = a; // int p = a[100]; printf("请输入n的个数\n"); scanf("%d", &n); printf("请输入这几个数\n"); for (i = 0; i < n; i++) { scanf("%d", &a[i]); //scanf("%d", & a[i]); } A(n, p); for (i = 0; i < n; i++) printf("%d ", a[i]); return 0; } void A(int n, int *p) //int A(int *n, int *p) { int i,j,t; for(i=0;i < n - 1;i++) //for(i=0;i<*n;i++) for (j = i + 1; j < n; j++) //for (j = i + 1; j < *n; j++) { if (*(p+i)>*(p+j)) { t = *(p + i), * (p + i) = *(p + j), * (p + j) = t; } } //return *p; }
发表回复