Arrays &引用;赋值从指针生成整数,不带强制转换“;?
我对这真的很陌生。我从来没有做过这样的事情,所以我对这段代码有问题。虽然我自己添加了findPos,但我得到了一个模板,可以在类似这样的单独函数中编写代码。我得到了“赋值从指针生成整数而不进行强制转换”的警告,而且我的max、min、sum、avg以及max和min的位置显然不是正确的数字。我只是想知道是否有人能把我引向正确的方向Arrays &引用;赋值从指针生成整数,不带强制转换“;?,arrays,c,warnings,Arrays,C,Warnings,我对这真的很陌生。我从来没有做过这样的事情,所以我对这段代码有问题。虽然我自己添加了findPos,但我得到了一个模板,可以在类似这样的单独函数中编写代码。我得到了“赋值从指针生成整数而不进行强制转换”的警告,而且我的max、min、sum、avg以及max和min的位置显然不是正确的数字。我只是想知道是否有人能把我引向正确的方向 #include <stdio.h> #include <stdlib.h> #include <time.h> int fin
#include <stdio.h>
#include <stdlib.h>
#include <time.h>
int findMin(int arr[], int size);
int findMax(int arr[], int size);
int findSum(int arr[], int size);
int findPos(int arr[], int size);
int size;
int i;
int max;
int min;
int avg;
int sum;
int pos;
int main()
{
srand(time(0));
printf("Enter an integer: ");
scanf("%d", &size);
int arr[size];
max = findMax;
min = findMin;
pos = findPos;
sum = findSum;
avg = sum / size;
printf("max:%7d\tpos:%d\t\n", max, pos);
printf("min:%7d\tpos:%d\t\n", min, pos);
printf("avg:%7d\n", avg);
printf("sum:%7d\n", sum);
printf("\n");
printf(" Pos : Val\n");
printf("-------------\n");
for (i = 0; i < size; i++) {
arr[i] = (rand() % 1001);
printf("%4d :%6d\n", i, arr[i]);
}
return 0;
}
int findMin(int arr[], int size)
{
min = arr[0];
for (i = 0; i < size; i++) {
if (arr[i] < min) {
min = arr[i];
}
}
return min;
}
int findMax(int arr[], int size)
{
max = arr[0];
for (i = 0; i < size; i++) {
if (arr[i] > max) {
max = arr[i];
}
}
return max;
}
int findSum(int arr[], int size)
{
sum = 0;
for (i = 0; i < size; i++) {
sum = sum + arr[i];
}
return sum;
}
int findPos(int arr[], int size)
{
for (i = 0; i < size; i++) {
pos = i;
}
return pos;
}
#包括
#包括
#包括
int findMin(int arr[],int size);
int findMax(int arr[],int size);
int findSum(int arr[],int size);
int findPos(int arr[],int size);
整数大小;
int i;
int max;
int-min;
国际平均值;
整数和;
int pos;
int main()
{
srand(时间(0));
printf(“输入一个整数:”);
scanf(“%d”,大小(&S);
int arr[尺寸];
max=findMax;
min=findMin;
pos=findPos;
sum=findSum;
平均值=总和/大小;
printf(“最大值:%7d\tpos:%d\t\n”,最大值,位置);
printf(“最小值:%7d\tpos:%d\t\n”,最小值,位置);
printf(“平均值:%7d\n”,平均值);
printf(“总和:%7d\n”,总和);
printf(“\n”);
printf(“Pos:Val\n”);
printf(“--------------\n”);
对于(i=0;i最大值){
max=arr[i];
}
}
返回最大值;
}
int findSum(int arr[],int size)
{
总和=0;
对于(i=0;i
max=findMax;
min=findMin;
pos=findPos;
sum=findSum;
将函数指针而不是返回值赋给整型变量。您必须执行类似于
max=findMax(arr,size)
的操作。同样在这种情况下,您应该在调用它之前将值赋给arr
。该代码有几个问题。让我再重复一遍
在创建的数组中填充数据
由于在执行任何操作之前,数据必须显示创建的数组
printf("\n");
printf(" Pos : Val\n");
printf("-------------\n");
for (i = 0; i < size; i++) {
arr[i] = (rand() % 1001);
printf("%4d :%6d\n", i, arr[i]);
}
应该替换为函数调用,如
max = findMax(arr, size);
min = findMin(arr, size);
pos = findPos(arr, size);
sum = findSum(arr, size);
最终主代码将为
int main()
{
srand(time(0));
printf("Enter an integer: ");
scanf("%d", &size);
int arr[size];
printf("\n");
printf(" Pos : Val\n");
printf("-------------\n");
for (i = 0; i < size; i++) {
arr[i] = (rand() % 1001);
printf("%4d :%6d\n", i, arr[i]);
}
max = findMax(arr, size);
min = findMin(arr, size);
pos = findPos(arr, size);
sum = findSum(arr, size);
avg = sum / size;
printf("max:%7d\tpos:%d\t\n", max, pos);
printf("min:%7d\tpos:%d\t\n", min, pos);
printf("avg:%7d\n", avg);
printf("sum:%7d\n", sum);
return 0;
}
intmain()
{
srand(时间(0));
printf(“输入一个整数:”);
scanf(“%d”,大小(&S);
int arr[尺寸];
printf(“\n”);
printf(“Pos:Val\n”);
printf(“--------------\n”);
对于(i=0;i
int main()
{
srand(time(0));
printf("Enter an integer: ");
scanf("%d", &size);
int arr[size];
printf("\n");
printf(" Pos : Val\n");
printf("-------------\n");
for (i = 0; i < size; i++) {
arr[i] = (rand() % 1001);
printf("%4d :%6d\n", i, arr[i]);
}
max = findMax(arr, size);
min = findMin(arr, size);
pos = findPos(arr, size);
sum = findSum(arr, size);
avg = sum / size;
printf("max:%7d\tpos:%d\t\n", max, pos);
printf("min:%7d\tpos:%d\t\n", min, pos);
printf("avg:%7d\n", avg);
printf("sum:%7d\n", sum);
return 0;
}