代码运行不了,不知道时代码编写不合规还是设计有矛盾。
#include
void findLargest(int a[],int n,int *plargest)//找最大值
{
int i;
*plargest=a[0];
for(i=0;iif(a[i]>*plargest)
{
*plargest=a[i];
}
}
}
void initArray(int a[],int n)//输入函数
{
int i;
for(i=0;i"a[i]=");
scanf("%d",&a[i]);
}
}
void outputArray(int a[],int n)//输出数组
{
int i;
for(i=0;i"%d ",a[i]);
}
}
int main ()
{
int m,max;
int b[20]={0};
printf("请输入数组长度:");
scanf("%d",m);
initArray(b,m);
outputArray(b,m);
findLargest(b,m,&max);
printf("数组中最大的元素为:%d",max);
}
错误提示的意思是大括号不匹配,但你提供的代码编译并没有这个错误
有的错误是:scanf("%d",m); 改为 scanf("%d",&m);
参考GPT和自己的思路:
你的代码存在两个问题:
&m
。max
而不是&max
。修改后的代码如下所示:
#include<stdio.h>
void findLargest(int a[],int n,int *plargest) //找最大值
{
int i;
*plargest = a[0];
for(i=0; i<n; i++)
{
if(a[i]>*plargest)
{
*plargest=a[i];
}
}
}
void initArray(int a[],int n) //输入函数
{
int i;
for(i=0; i<n; i++)
{
printf("a[%d]=", i);
scanf("%d", &a[i]);
}
}
void outputArray(int a[],int n) //输出数组
{
int i;
for(i=0; i<n; i++)
{
printf("%d ",a[i]);
}
}
int main ()
{
int m,max;
int b[20]={0};
printf("请输入数组长度:");
scanf("%d", &m);
initArray(b, m);
outputArray(b, m);
findLargest(b, m, &max);
printf("数组中最大的元素为:%d", max);
return 0;
}
scanf("%d",m);
修改下
scanf("%d",&m);
```c
```
参考GPT和自己的思路:
在第36行应该改为scanf("%d",&m);,因为m是一个整型变量。此外,在函数findLargest的第5行应该加上一个星号,即*plargest=a[0],因为plargest是指向int类型的指针变量,需要通过解引用符*才能访问其所指向的变量。另外,建议在函数initArray、outputArray和main函数中,将数组的长度n作为参数传入,以避免可能出现的溢出问题。最终的代码如下所示:
#include <stdio.h>
void findLargest(int a[], int n, int *plargest) //找最大值
{
int i;
*plargest = a[0];
for (i = 0; i < n; i++)
{
if (a[i] > *plargest)
{
*plargest = a[i];
}
}
}
void initArray(int a[], int n) //输入函数
{
int i;
for (i = 0; i < n; i++)
{
printf("a[%d]=", i);
scanf("%d", &a[i]);
}
}
void outputArray(int a[], int n) //输出数组
{
int i;
for (i = 0; i < n; i++)
{
printf("%d ", a[i]);
}
}
int main()
{
int m, max;
int b[20] = {0};
printf("请输入数组长度:");
scanf("%d", &m);
initArray(b, m);
outputArray(b, m);
findLargest(b, m, &max);
printf("数组中最大的元素为:%d", max);
return 0;
}