c语言:输入10个整数,将其中最大数与第一个数交换,最小数与最后一个数交换(要求用指针方法实现)

作者&投稿:彭知 (若有异议请与网页底部的电邮联系)
c语言:输入10个整数,将其中最大数与第一个数交换,最小数与最后一个数交换(要求用指针方法实现)~

#include
#define N 10
int main()
{
int a[N],i,tmp;
int *p,*pMax,*pMin;
p=pMax=pMin=a;
for(i=0;i<N;i++)
scanf("%d",&a[i]);
for(i=0;i<N;i++,p++)
{
if(*p > *pMax)
{
pMax=p;
}
if(*p < *pMin)
{
pMin=p;
}
}
//将最大数与第一个数交换
tmp=a[0];
a[0]=*pMax;
*pMax=tmp;
//将最小数与最后一个数交换
tmp=a[9];
a[9]=*pMin;
*pMin=tmp;
//输出数组元素
for(i=0;i<N;i++)
printf("%d ",a[i]);
printf("
");
return 0;
}

//输入保存10个数,找的最小数和最大数,交换
void main()
{
int i,a[10];
int *min, *max ,temp;
for(i=0;i<10;i++)
scanf("%d",a[i]);
min=&a[0];
max=&a[0];
for(i=0;i<10;i++)
{
if(a[i]>*max) max=&a[i];
if(a[i]<*min) min=&a[i];
}
temp=a[0];
a[0]=*min;
*min=temp;
temp=a[9];
a[9]=*max;
max=temp;
}

#include <stdio.h>

#include <conio.h>

void main()

{

int i,min,max,temp,t1,t2,a[10],*p=a;

for(i=0;i<10;i++)

scanf("%d",p+i);

min = a[0];

max = a[0];

t1=0;

t2=0;

for(i=0;i<10;i++)

{

if(min>a[i])

{

min=a[i];

t1=i;

}

if(max<a[i])

{

max=a[i];

t2=i;

}

}

temp=a[0];

a[0]=min;

a[t1]=temp;

temp=a[9];

a[9]=max;

a[t2]=temp;

printf("max=%d,min=%d
",max,min);

for(i=0;i<10;i++)

printf("%d",a[i]);

}

扩展资料:

使用指针来读取数据,在重复性操作的状况下,可以明显改善程序性能,例如在遍历字符串,查取表格,控制表格及树状结构上。对指针进行复制,之后再解引用指针以取出数据,无论在时间或空间上,都比直接复制及访问数据本身来的经济快速。

指针的机制比较简单,其功能可以被集中重新实现成更抽象化的引用数据形别。许多编程语言中都支持某种形式的指针,最著名的是C语言,但是有些编程语言对指针的运用采取比较严格的限制,如Java一般避免用指针,改为使用引用。





#include <stdio.h> 
#define N 10 
int main() 

    int a[N],i,tmp; 
    int *p,*pMax,*pMin,*q=NULL; 
    p=pMax=pMin=a; 
    for(i=0;i<N;i++) 
        scanf("%d",&a[i]); 
    for(i=0;i<N;i++,p++) 
    { 
        if(*p > *pMax) 
        { 
            pMax=p; 
        } 
        if(*p < *pMin) 
        { 
            pMin=p; 
        } 
    } 
    //将最大数与第一个数交换 
    tmp=a[0]; 
    a[0]=*pMax; 
    *pMax=tmp; 
    //修正当最小值在首位时,在上面的交换中最小值被移位
    if(pMin==a)
    {
     pMin=pMax;
    }
    //将最小数与最后一个数交换 
    tmp=a[9]; 
    a[9]=*pMin; 
    *pMin=tmp; 
    //输出数组元素 
    for(i=0;i<N;i++) 
        printf("%d ",a[i]); 
    printf("
"); 
    return 0; 
}


#include "stdio.h"
void max_min(int *a,int index,int end); //声明函数
void main(){
int a[10],i; //定义数组a用来存储10个整数
for(i=0;i<10;i++) //输入10个整数
scanf("%d",&a[i]);
for(i=0;i<10;i++) //输出交换前的数组a的元素
printf("%d ",a[i]);
printf("\n");
max_min(a,0,9); //调用查找并交换最大最小值
for(i=0;i<10;i++) //输出交换后的数组a的元素
printf("%d ",a[i]);
printf("\n");
}

void max_min(int *a,int index,int end){
int *indexp,*endp,*temp,*maxp,*minp; //分别定义指向第一个元素、指向最后一个元素、临时、
//指向最大、指向最小的指针变量
indexp=(int *)malloc(sizeof(int)); //给指针们分配存储空间
endp=(int *)malloc(sizeof(int));
temp=(int *)malloc(sizeof(int));
maxp=(int *)malloc(sizeof(int));
minp=(int *)malloc(sizeof(int));
*indexp=index; //给指针们初始化
*endp=end;
*maxp=*indexp;
*minp=*endp;

for(int i=0;i<=*endp;i++){ //查找最大最小值
if(a[*maxp]<a[i]) *maxp=i;
if(a[*minp]>a[i]) *minp=i;
}

*temp=a[*indexp]; //把最小值与第一个元素交换
a[*indexp]=a[*minp];
a[*minp]=*temp;

*temp=a[*endp]; //把最大值与最后一个元素交换
a[*endp]=a[*maxp];
a[*maxp]=*temp;

free(indexp); //给指针们释放空间
free(endp);
free(maxp);
free(minp);
free(temp);
}

#include <stdio.h>
#define N 10
int main()
{
int a[N],i,tmp;
int *p,*pMax,*pMin;
p=pMax=pMin=a;
for(i=0;i<N;i++)
scanf("%d",&a[i]);
for(i=0;i<N;i++,p++)
{
if(*p > *pMax)
{
pMax=p;
}
if(*p < *pMin)
{
pMin=p;
}
}
//将最大数与第一个数交换
tmp=a[0];
a[0]=*pMax;
*pMax=tmp;
//将最小数与最后一个数交换
tmp=a[9];
a[9]=*pMin;
*pMin=tmp;
//输出数组元素
for(i=0;i<N;i++)
printf("%d ",a[i]);
printf("
");
return 0;
}



c语言题:在键盘输入10个整数 逆序存放并输出
比较简单的方法是创建一个数组 从下标为9开始递减进行输入至下标为0 这样存储就会是倒序的了 然后再从下标为0开始递增输出到下标为9 另一种方法是创建两个数组 比如a和b,先顺序地将10个数据存储在a里 然后通过一个循环来将数据逆序存储在数组b里 这样数组b里就是逆序存储的了 最后顺序输出数组b ...

C语言:从键盘上输入10个整数,求这10个整数的奇数和及偶数和
```c include <stdio.h> int main(){ int num[10];int i, odd_sum = 0, even_sum = 0;\/\/ 输入10个整数 printf("请输入10个整数:\\n");for(i=0;i<10;i++)scanf("%d",&num[i]);\/\/ 计算奇数和与偶数和 for(i=0;i<10;i++){ if(num[i]%2==0)even_sum += num[i...

用c语言编程,从键盘上输入10个整数存放到一维数组中,输出其中最大的数...
int main() { int i,a[10],max,maxi;\/\/输入10个整数 for(i=0;i<10;i++){ scanf("%d",&a[i]);} \/\/假设数组的第1个是最大数max,同时设置最大值下标为0 max=a[0];maxi=0;\/\/for循环依次判断其是否大于最大数,如果大于替换掉最大值,并更新最大值下标 for(i=1;i<10;i++...

c语言。编程序,输入10个整数,把其中重复出现的数删去(如出现三个87,则...
include<stdio.h> main(){ int a[10];for(int i=0;i<10;i++)scanf("%d",&a[i]);int b[10];b[0]=a[0];int k=1;for(i=1;i<10;i++)for(int j=0;j<k;j++){ if(a[i]==b[j])break;else if(j==k-1){ b[k]=a[i];k++;} } for(i=0;i<k;i++)printf...

输入10个整数,按照由大到小的顺序输出C语言编写
采纳率:36% 来自团队:CppExpert 擅长: C\/C++ 电脑\/网络 汇编语言 互联网 常见软件 其他回答 #include<isostream.h>void main(){int data[10];cout<<endl<<"请输入10个整数:";int i;for(i=0;i<10;i++)cin>>data[10];#define SIZE(sizeof(data)\/sizeof(data(0))int m;for(m=0;m<SIZE-1...

c语言 .从键盘输入10个整数,存到一维数组中,并求这10个整数的和?
1、首先打开c语言编辑器,新建一个C语言的文件,文件中引入C语言的头文件,新建一个main函数,函数中设置一个10个元素的数组以及一个用来求和的变量:2、之后用一个for循环遍历数组,每次都从scanf中取到用户输入的数并存入数组中,存完后再用sum加这个数,如此便能求出数组内元素的和了:3、最后...

C语言编程,输入10个整数,分别按顺序和逆序输出
C语言通过输入十个整数然后分别顺序和逆序输出的编程思想和方法如下:1.首先需要定义一个整型数组用于存储输入的10个整数。这里定义一个数组a。2.然后利用for循环,接受从键盘输入的10个整数。这里使用i作为循环的游标变量。3.输入完毕后,再次利用for循环来顺序输出存储在数组的十个数。这里同样使用局部...

输入10个整数,求其中正数的个数及平均值,精确到小数点后两位
以下是用C语言编写的计算10个整数中正数个数和平均值的程序:include <stdio.h> int main() { int i, count = , sum = , num;for (i = ; i < 10; i++) { printf("请输入第%d个整数: ", i+1);scanf("%d", &num);if (num > ) { count++;sum = sum + num;} } printf...

c语言 输入10个整数,判断它们是否有重复,如果没有重复输出Yes,否则输...
int main(int argc,char *argv[]){ char f[2][4]={"NO","YES"},i,j,r;int n[10];printf("Enter 10 integers...\\n");r=i=0;while(i++<10){ scanf("%d",&n[i]);} for (i=1; i<10; i++){ for(j=0; j

C语言:从键盘上输入10个整数,将其保存到数组中,并按升序排列。_百度知 ...
源程序代码以及算法解释如下:define _CRT_SECURE_NO_WARNINGS include<stdio.h> int main(){ int i, j;\/\/定义循环变量 int M_num;\/\/定义中间变量 const int N = 10;\/\/定义数组元素个数 int number[N];\/\/定义两个数组 printf("请输入10个数组元素:\\n");\/\/文字提示 for (i = 0; i ...

沂南县17793863278: 用C语言编写一个程序: 从键盘输入 10 个整数,求出其中的最大值. -
吴有捷凝: 展开全部#include void main() { int a[10]={0},i,max=0; printf("请输入10个整数:\n"); for(i=0;i<10;i++) { scanf("%d",&a[i]); } max=a[0]; for(i=0;i<10;i++) { if(a[i]>max) max=a[i]; } printf("最大数为:%d",max); }

沂南县17793863278: c语言编程 依次输入10个数,找出其中的最大数. -
吴有捷凝: #include <stdio.h>int main(void) {int i = 0, max = 0, x =0;printf("请输入10个整数:");for(i=0;i<10;i++) {scanf("%d", &x);if(x > max) max = x;}//nextprintf("最大值为:%d", max);return 0; }

沂南县17793863278: 用C语言编写程序,任意输入十个数,求最大值. -
吴有捷凝: #include<stdio.h> void main() {int i,j,b,a[10];for(i=0;i<10;i++)scanf("%d",a+i);b=a[0];for(i=0;i<10;i++)if(b<a[i])b=a[i];printf("最大值为%d",b); } 每输入一个数按一下回车.

沂南县17793863278: 依次将10个数输入,要求输出其中最大的数,用C语言
吴有捷凝: void _Max(void) { int intArray[10]; //定义存储十个整型数据的数组 memset(intArray,0,10); //将数组intArray中的每个元素赋予0值. int MaxNumber = 0; //输入10个整型数据 printf("please input 10 number:\n"); for (int i = 0; i &lt; 10; i++) { scanf(...

沂南县17793863278: C语言,依次将10个数输入,要求输出其中最大的数. -
吴有捷凝: main() { int i; int x[10]; for(i=1;i<=10;1++) { printf("\nPlease input the number No.%d:",i); scanf("%d";x[i]); } for(x[0]=x[1],i=2;i<=10;i++) if(x[0]<x[i]) x[0]=x[i]; printf("\nThe max number is %d\n",x[0]); } 这样就可以了.

沂南县17793863278: c语言编程:从键盘上输入10个整数,求最大值及这个最大值是第几个数 -
吴有捷凝: 程序如下: #includevoid main() { int a[10]; int i,max,bi; printf("输入十个数:\n"); for(i=0;i<=9;i++) { scanf("%d",&a[i]); if(0==i) { max=a[i]; bi=i; } else if(a[i]>max) { max=a[i]; bi=i; } } printf("最大值是: %d\n",max); printf("下标是: %d\n",bi); }

沂南县17793863278: 从键盘上输入10个整数,找出其中最大的并显示出来c语言编程 -
吴有捷凝: //思路 输入的时候跟Max比较,大于Max的话Max就等于这次输入,以此类推 #include <stdio.h>int main() {int Input, i, Max = 0; for(i= 0; i < 10; i++){scanf("%d",&Input);if(Input > Max) Max = Input;} printf("Max Number is %d", Max); }

沂南县17793863278: C语言 - 程序输入10个正整数,请找到其中的最大数输出. -
吴有捷凝: scanf("%d",&a[10]); 改成 scanf("%d",&a[n]);

沂南县17793863278: 从键盘输入10个数选出最大数,C语言怎样编? -
吴有捷凝: 我这里有个源代码 楼主可以参考一下:#include <iostream>#define N 10 //N控制输入的数字个数 using namespace std; int main() { int data_home[N]; cout << "请输入" << N<< "个正整数,输入的整数将按照从大到小的顺序输出:" << '\n'; ...

沂南县17793863278: C语言 输入10个数,输出其中最大的一个数 -
吴有捷凝: #include <stdio.h> int main() { int tmp, max, i; scanf("%d", &max); //先输入一个数,先初始定为最大值 for(i=0; i<9; i++) //循环输入9次 { scanf("%d", &tmp); if(tmp > max) //如果输入的数比原来的max大,则用tmp替换原来的max max = tmp; } printf("%d", max); return 0; } 直接在这里打的,没编译过,有错请追问

本站内容来自于网友发表,不代表本站立场,仅表示其个人看法,不对其真实性、正确性、有效性作任何的担保
相关事宜请发邮件给我们
© 星空见康网