读书人

C语言中实现用指针变量法交换数据求

发布时间: 2012-05-05 17:21:10 作者: rapoo

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);
}
[解决办法]

C/C++ code
#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循环中变量定义要放在循环外
[解决办法]
变量声明要放在循环外

读书人网 >C语言

热点推荐