#include <stdio.h>
void main()
{
void sort(int x[],int n);
printf("input 5 numbers:\n");
int *p,i,a[5],max;
p=a;
for (i=0;i<5;i++)
scanf("%d",p++);
p=a;
sort(p,5);
printf("the max is :%d",max);
}
void sort(int x[],int n)
{
int i,j,k,t,max;
for (i=0;i<n-1;i++)
{k=i;
for (j=i+1;j<n;j++)
if(*(x+j)<*(x+k)) k=j;
if(k!=1)
{t=*(x+k);*(x+k)=*(x+i);*(x+i)=t;}
max=x[i];
}
}
不知道错在哪里~请各位帮忙看下~
这个不行啊,输出的是a[0]
追答我已经测试过了。
你输入的是什么?
输出的是什么?
我知道了,要有空格的,我输入的时候用的是逗号
这两个有什么区别呢,起初没有定义怎么输入的
这两天头都大了,啥都不知道了
max=sort(p,5);
这一行不行,每次都是这种错误cannot convert from 'void' to 'int'
不解
c语言,输入5个数,用指针比较,输出最大值,不知道哪里错了
int main(){ void sort(int x[],int n,int *);printf("input 5 numbers:\\n");int *p,i,a[5],max;p=a;for(i=0;i<5;i++)scanf("%d",p++);p=a;sort(p,5,&max); \/\/这里将max的地址传进去,子函数才能返回其值。printf("the max is :%d",max);getchar();getchar()...
c语言 输入五行六列的数组,求最大值
include <stdio.h>int main(){ int a[5][6], i, j, maxv; for (int i = 0; i < 5; ++i){ for (int j = 0; j < 6; ++j){ scanf ("%d", &a[i][j]); } } maxv = a[0][0]; for (int i = 0; i < 5; ++i){ for (int j...
C语言程序求问哪里错了,目的是求出最大值
va_start(quantity, number1); \/\/开始移动指针,偏移量是number1的大小,即int型大小 while(iTmp >= 0) \/\/遇到小于0的数就结束 { printf("%d ", iTmp);\/\/输出每个数 iTmp = *((int *)(quantity));\/\/quantity其实是char *类型的,所以要转换成int \/\/计算最大值 if(answer < iTmp...
输入5个字符串,按由小到大的顺序输出(用指针做)
include<string.h> main(){ int i,j;char t[5];char a[5][5]={'\\0'};printf("输入5个字符串");for(i=0;i<5;i++)scanf("%s",&a);for(i=0;i<5;i++)for(j=0;j<5-i;j++){ if(strcmp(a[j],a[j+1])>0){ strcpy(t,a[j]);strcpy(a[j],a[j+1]);strcpy(...
一道c语言程序题: 输入5个字符串,按字典顺序将其重新排列输出。用字符串...
include<stdio.h> include<string.h> void main(){ void sort(char (*p)[20]);char a[5][20];\/\/五行20列 int i;printf("请输入5个字符串:\\n");for(i=0;i<5;i++)\/\/这里输入五个字符串 gets(a[i]);sort(a);\/\/调用函数进行排列 } void sort(char (*p)[20]){ char a[20...
c语言利用数组指针方法 输入五个数字求出最小值 将最小值和数组第一个...
main(){int arr[N];int i,min,j,tmp;printf("输入5个数字: ");for(i=0;i<N;i++)scanf("%d",&arr[i]);for(i=0,min=arr[0];i<N;i++){if(min>arr[i]){min=arr[i];j=i;}}arr[j]=arr[0];arr[0]=min;printf("输出结果为: ");for(i=0;i<N;i++)printf("...
C语言,用指针指向一个地址,从这个地址开始输入数据,超过五个出错_百度...
char *p=&a;\/\/p指向的是a的首地址。当你++后,便指向它的下个地址,这样是不安全的,也就是说非法的指向了不属于你的内存(因为你p只拥有a这个内存)。前面5个数对,只是意外。你要输入多个字符都是正常的,那必须给p分配足够的内存空间。比如讲a定义成数组,或者malloc内存。
c语言用指针找出最大值
"%d",*p);p=str;\/\/缺少指针重置 max=*p;for(i=1;i<N;i++){if(max<*(p+i))max=*(p+i);}printf("\\n%d\\n",max);}您好,很高兴为您解答,流星不死为您答疑解惑 如果本题还有不懂的地方请追问,望采纳我的回答。祝楼主学习进步。上面的代码可以直接复制到编译器里,带换行。
输入5个字符串,将它们储存在一个字符指针数组中,按从小到大得顺序排序...
include<stdio.h> include<string.h> void main(){ char a[5][20];char *p[5];int i,j;char *t;for(i=0;i<5;i++){ p[i]=a[i];gets(p[i]);} for(i=0;i<5;i++){ for(j=i+1;j<5;j++){ if(strcmp(p[i],p[j])>0){ t=p[i];p[i]=p[j];p[j]=t;}...
c语言任意输入5个数,并按从大到小顺序输出
可以采用以下的代码进行计算:include <stdio.h> include <stdlib.h> int main(){ int a[5];int i,j,k;for(i=0;i<=4;i++){ scanf("%d",&a[i]);} for(i=0;i<=4;i++){ for(j=0;j<=4;j++){ if(a[i]>a[j]){ k=a[i]; a[i]=a[j]; a[j]=k;} } } pri...