#define _CRT_SECURE_NO_WARINGS
#include <iostream>
#include <algorithm>
using namespace std;
const int MAX_N = 100;
int n, a[MAX_N];
void solve()
{
int ans = 0;
for (int i = 0; i < n; i++) {
for (int j = i + 1; j < n; j++) {
for (int k = j + 1; k < n; k++) {
int len = a[i] + a[j] + a[k];
int ma = max(a[i], max(a[j], a[k]));
int rest = len - ma;//其余两棍之和
if (ma < rest) {
ans = max(ans, len);
}
}
}
}
printf("%d", &ans);
}
int main()
{
scanf_s("%d", &n);
for (int i = 0; i < n; i++)
{
scanf_s("%d", &a[i]);
}
solve();
}
调用printf实际类型:"int*"时需要整数时,非整数传递为_param_(2).
出现了这类报错时,因该如何修改代码呢?
printf("%d", &ans);
->
printf("%d", ans)
这个是个小细节,一定要记住啦:
printf 后面要输出的变量前是没有&符号的,
而scanf是有的,两种格式如下:
printf("%d",ans);
scanf("%d",&ans);
我还是一名小学生,有用的话能采纳一下吗,谢谢啦。
不知道你这个问题是否已经解决, 如果还没有解决的话:在printf处出现报错的情况是传递了一个实际类型为"int*"的参数,但需要的是一个整数类型参数。要解决这个问题,需要修改代码来确保实际传递的参数类型与所需的参数类型匹配。
假设原始的printf代码如下:
int* num = 10;
printf("%d", num);
可以看到,在这个代码中,我们传递了一个int类型的指针num作为printf的参数。而printf实际上需要的是一个整数类型参数。所以我们需要修改代码来解决这个问题。
解决方案如下:
int num = 10;
printf("%d", num);
在修改后的代码中,我们将num的类型更改为int,而不是int指针。这样,printf函数将会正常打印出整数值10,而不会再报错。
希望以上解决方案对您有帮助,如果还有其他问题,请随时提问。