C语言中实现用指针变量法交换数据,求各位帮助
输入十个整数,将其中最小的数与第一个数对换,把最大的数与最后一个数对换。写3个函数:1:输入10个数;2:进行处理;3:输出10个数。
要求:指针变量做函数形参。
[解决办法]
#include <stdio.h>
#include <malloc.h>
int *sin()
{
int a=0;
int i=0;
int *b=(int *)malloc(10);
printf("请输入10个整数:");
while(i<10)
{
scanf("%d",&a);
b[i]=a;
++i;
}
return b;
}
int *change(int *a)
{
int i=0,max=0,min=0;
int temp=0,temp1=0;
for(i=1;i<10;i++)
{
if(a[max]<a[i])max=i;
if(a[min]>a[i]) min=i;
}
temp=a[9];
a[9]=a[max];
temp1=a[0];
a[0]=a[min];
a[max]=temp;
a[min]=temp1;
return a;
}
void putout(int *a)
{
int i=0;
for(i=0;i<10;i++)
{
printf("%d ",a[i]);
}
}
void main()
{
int i=0;
int *a;
a=sin();
change(a);
putout(a);
}
[解决办法]
#include<stdio.h>void input(int *p){ printf("请输入十个数:\n"); for(int i = 0; i < 10; ++i) { scanf("%d", p+i); }}void solve(int *p){ int min,max; min = p[0]; max = p[0]; for(int i = 1; i < 10; ++i) { if(p[i]>max) max=p[i]; if(p[i]<min) min=p[i]; } p[0]=min; p[9]=max;}void output(int *p){ for(int i = 0; i < 10; ++i) { printf("%d ", p[i]); } printf("\n");}int main(){ int arr[10]; input(arr); solve(arr); output(arr); return 0;}
[解决办法]
c99循环中变量定义要放在循环外
[解决办法]
变量声明要放在循环外