我想要的东西可以用简单的程序来实现,但是我怎么才能用指针来实现呢?我想我在什么地方出了错。
这些是我的条目。
3 4 8 1 6 9 7 2 5 2.它是输出。
1.major=0 2.major=0我的密码。
#include <stdio.h>
#include <stdlib.h>
void func(int*major1,int*major2);
int main() {
int major1,major2;
func(&major1,&major2);
printf("1.major=%d 2.major=%d",major1,major2);
return 0;
}
void func(int*major1,int*major2){
int array[10],i;
*major1=0;
*major2=0;
for(i=0;i<10;i++){
printf("%d.number",i+1);
scanf("%d",&array[i]);
if(array[i]>major1){
*major2=*major1;
*major1=array[i];
}
else if(major2>major1) {
*major2=array[i];
}
}
}和错误屏幕。
[Warning] comparison between pointer and integer发布于 2020-12-08 22:01:53
此代码可以帮助您:
#include <stdio.h>
void func(int*major1,int*major2);
int main()
{
int major1,major2;
func(&major1 , &major2);
return 0;
}
void func(int *major1,int *major2)
{
int array[10];
*major1=0,*major2=0;
for(int i=0;i<10;i++)
{
printf("%d.number :",i+1);
scanf("%d",&array[i]);
if(array[i]>*major1)
{
*major2=*major1;
*major1=array[i];
}
if(array[i]>*major2&&*major1>array[i])
{
*major2=array[i];
}
}
for(int i=0;i<10;i++)
{
if(array[i]>*major2&&*major1>array[i])
{
*major2=array[i];
}
}
printf("\nThe first biggest number in this array is :%d",*major1);
printf("\nThe second biggest number in this array is :%d\n",*major2);
}发布于 2020-12-08 21:14:37
警告是正确的,在比较major1和major2,的行上,前面缺少* (总共2行)。因此,您在func中引用的所有内容都应该是*major1和*major2,以便访问指针后面的值。
发布于 2020-12-08 21:17:12
保持这一点
if(array[i]>*major1) {
*major2=*major1;
*major1=array[i];
}https://stackoverflow.com/questions/65199591
复制相似问题