C语言 用指针访问的方式 输入3个数,输出最小值 要分析过程,谢谢

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了C语言 用指针访问的方式 输入3个数,输出最小值 要分析过程,谢谢相关的知识,希望对你有一定的参考价值。

全部手打啊,我现编的,有分的话给追加点最好了。

#include"stdio.h"
main()
int i,a[3],*p; /*i为计数变量,数组a用来接收输入值,指针p用来访问*/
p=a; /*将数组a的首地址赋值给指针p*/
for(i=0;i<3;p++) /*循环三次 每次指针p的值增加一个int宽度 例:p从指向a[0]变成指向a[1]*/

scanf("%d",p); /*输入数,指针p的值即为地址,所以不用加“&”*/
if(p>a) /*判断指针p当前指向的位置,如果已经超过第一个数则进行下面的判断*/
if(*p<a[0])
a[0]=*p; /*每次输入一个值后,与第一个数a[0]比较,将a[0]保持为最小值*/

printf("%d",a[0]); /*经过输入和比较,此时a[0]的值是最小的*/
参考技术A #include <stdio.h>

int main()

int *p, *q, *r, a, b, c;//定义3个整型指针
int min;

scanf("%d %d %d", &a, &b, &c);//输入3个整数

p=&a, q=&b, r=&c;//将整数的地址复制给指针
min=*p<*q?*p:*q; //通过指针进行大小比较
min=min<*r?min:*r;

printf("%d", min);
参考技术B 三个数那个太简单就不做了吧!
//有数组!!!
#include<stdio.h>
void main()

char a[14]=;
char *p=&a[12];
int i;
for(i=0;i<13;i++)

printf("%c",*p);
p--;

printf("\n");


//或者:不含数组
#include<stdio.h>
#include<string.h>
void main()

char *p=&a[12];
int i;
for(i=0;i<13;i++)

printf("%c",*p);
p--;

printf("\n");*/
char *p="HOW DO YOU DO";
int i;
char *q=p+strlen(p)-1;
for(i=0;i<13;i++)

printf("%c",*q);
q--;

printf("\n");


结果:
OD UOY OD WOH
Press any key to continue
另外,站长团上有产品团购,便宜有保证
参考技术C #include<stdio.h>
void change(int *o,int *p)

int q;
q=*p;*p=*o;*o=q;


void deal(int *x,int *y,int *z)

int *d,*e,*f;
d=&x;e=&y;f=&z;
if(*x>*y)
change(x,y);
if(*x>*z)
change(x,z);
if(*y>*z)
change(y,z);


void main()

int a,b,c,*m,*n,*p;
scanf("%d%d%d",&a,&b,&c);
m=&a;n=&b;p=&c;
deal(m,n,p);
printf("%d<%d<%d\n",a,b,c);
本回答被提问者采纳
参考技术D 三个数那个太简单就不做了吧!
//有数组!!!
#include<stdio.h>
void main()

char a[14]=;
char *p=&a[12];
int i;
for(i=0;i<13;i++)

printf("%c",*p);
p--;

printf("\n");


//或者:不含数组
#include<stdio.h>
#include<string.h>
void main()

char *p=&a[12];
int i;
for(i=0;i<13;i++)

printf("%c",*p);
p--;

printf("\n");*/
char *p="HOW DO YOU DO";
int i;
char *q=p+strlen(p)-1;
for(i=0;i<13;i++)

printf("%c",*q);
q--;

printf("\n");


结果:
OD UOY OD WOH
Press any key to continue

c语言的。。。 输入三个数 输出最大值

#include<stdio.h>
void main()

int max(int a,int b,int c,);
int a,b,c,x;
scanf("%d,%d,%d",&a,&b,&c);
x=max(a,b,c);
printf("max=%d\n",x);

int max(int a,int b,int c)

int d=a;
if(b>d)d=b;
if(c>d)d=c:
return d;

帮我看下 什么错了
#include <stdio.h>
void main()

int a,b,c;
scanft("%d,%d,%d",&a,&b,&c);
if(a>=b)
max=a;
else
max=b;
if(max>c)
max=max;
else
max=c;
printf("max=%d",max);
这个又是什么错了- -

正确代码:

#include<stdio.h>

int max(int a,int b,int c);

int main()

int a = 0,b = 0,c = 0,x;

scanf("%d %d %d",&a,&b,&c);

x=max(a,b,c);

printf("max=%d\\n",x);

return 0;

int max(int a,int b,int c)

int d=a;
if(b>d)d=b;
if(c>d)d=c:
return d;

运行截图:

分析

你的错误1.现在main函数是不能用void修饰的,如果你用的是旧的编译器,是可以使用void的,但是建议你用int,在main函数里面最后加个return 0;就好。

错误2,函数声明应该放在main函数外头,这里放在main函数上面。

错误3,字符问题,你的a,b,c不知道用的什么格式,就是这件事困恼了我好久,建议你在纯英文输入环境输入。

错误4,max函数里头“if(c>d)d=c:”最后冒号要改成分号。

参考技术A

思路:先定义三个数a,b,c;接着键盘输入并依次赋值,接着判断a和b值大小,把大值赋值给a,接着比较a和c的大小,把大值赋值给a,最后输出a。

参考代码:

#include <stdio.h>
int main()

int a,b,c;
scanf("%d%d%d",&a,&b,&c);
if(a<b) a=b;
if(a<c) a=c;
printf("%d\\n",a); 
return 0; 

/*
运行结果:
2 4 1
4
*/

参考技术B

#include <stdio.h>

#define max(a,b) (a>b?a:b)

int main()

int a,b,c;

scanf("%d %d %d",&a,&b,&c);

printf("%d\\n",max(max(a,b),c));

return 0;

扩展资料:

JAVA得到数组中最大值和最小值的简单实例

public class TestJava4_3

public static void main(String args[])

int i,min,max;

int A[]=74,48,30,17,62;  // 声明整数数组A,并赋初值

min=max=A[0];

System.out.print("数组A的元素包括:");

for(i=0;i<A.length;i++)

System.out.print(A[i]+" ");

if(A[i]>max)   // 判断最大值

max=A[i];

if(A[i]<min)   // 判断最小值

min=A[i];

System.out.println("\\n数组的最大值是:"+max); // 输出最大值

System.out.println("数组的最小值是:"+min); // 输出最小值

该程序输出结果:

数组A的元素包括:74 48 30 17 62

数组的最大值是:74

数组的最小值是:17

参考技术C

错误原因:scanf函数里的%d之间不能加上逗号

例子如下:

直接编译,程序输出结果中随意输入a,b,c的值,然后按回车,如下图所示:

参考技术D #include<stdio.h>
void main()

int max(int a,int b,int c,); //c后面不应该有逗号
int a,b,c,x;
scanf("%d,%d,%d",&a,&b,&c);//输入数据的时候,也应该按此格式输入,例如1,3,2
x=max(a,b,c);
printf("max=%d\n",x);

int max(int a,int b,int c)

int d=a;
if(b>d)d=b;
if(c>d)d=c://这里后面应是分号而不是冒号
return d;
//这样这个程序就对了,我试了一下

#include <stdio.h>
void main()

int a,b,c;
int max; //max你下面没有定义,所以定义一下
scanft("%d,%d,%d",&a,&b,&c); /*应该是scanf,你打错了。输入数据注意格式,中间是逗号,不能是别的*/
if(a>=b)
max=a;
else
max=b;
if(max>c)
max=max;
else
max=c;
printf("max=%d",max);
//这样这个程序就对了,我试了。
好好学习,天天向上啊

以上是关于C语言 用指针访问的方式 输入3个数,输出最小值 要分析过程,谢谢的主要内容,如果未能解决你的问题,请参考以下文章

c语言从键输入5个数求最大值和最小值 只用if(刚学,要最简单的)

c语言输入三个数,显示最大值。

c语言求解,,,输出一组数的最大值,最小值,和,平均值(保留2位小数)。。不能用数组

C语言求输入三个数输出最大与最小值

C语言中怎样用指针找出一维数组中的最大值和最小值并输出它们的下标

用C语言,任意输入10个数,求其中的最大值和最小值