崔铭1315 发表于 2020-8-12 16:49:16

vc2010 error C4716: “mian”: 必须返回一个值

#include<stdio.h>
#include"stdlib.h"
#define SIZE 15
#define N 3
void getrand(int *,int);
void getave(int *,int *,int);
void priarr(int *,int);
intmian( )
{
        int x,w={0};
        getrand(x,SIZE);
        printf("Output %d random numbers:\n",SIZE);
        priarr(x,SIZE);
        getave(x,w,SIZE);
        printf("Output 5 sum number:\n");
        priarr(w,SIZE/N);

}
void getrand(int *a,int n)
{
int i;
for(i=0;i<n;i++)a=rand()%50;
}

void getave(int *a,int *b,int n)
{
int i,j,sum;
for(sum=0,i=0,j=0;i<=n;i++)
{
sum+=a;
if((i+1)%3==0)
{
b=sum;
sum=0;
j++;
}
}
}

void priarr(int *a,int n)
{
int i;
for(i=0;i<n;i++)
{printf("%5d",a);
if((i+1)%5==0)printf("\n");
}
printf("\n");

}

zltzlt 发表于 2020-8-12 16:49:37

第 8 行是 main 不是 mian

baige 发表于 2020-8-12 16:57:04

#include<stdio.h>
#include<stdlib.h>

#define SIZE 15
#define N 3

void getrand(int*, int);
void getave(int*, int*, int);
void priarr(int*, int);

intmain()
{
    int x, w = { 0 };
    getrand(x, SIZE);
    printf("Output %d random numbers:\n", SIZE);
    priarr(x, SIZE);
    getave(x, w, SIZE);
    printf("Output 5 sum number:\n");
    priarr(w, SIZE / N);

}
void getrand(int* a, int n)
{
    int i;
    for (i = 0; i < n; i++) a = rand() % 50;
}

void getave(int* a, int* b, int n)
{
    int i, j, sum;
    for (sum = 0, i = 0, j = 0; i <= n; i++)
    {
      sum += a;
      if ((i + 1) % 3 == 0)
      {
            b = sum;
            sum = 0;
            j++;
      }
    }
}

void priarr(int* a, int n)
{
    int i;
    for (i = 0; i < n; i++)
    {
      printf("%5d", a);
      if ((i + 1) % 5 == 0)printf("\n");
    }
    printf("\n");

}

baige 发表于 2020-8-12 16:58:07

对于数组作为形参的传递过去,你一直把形参名去做运算

405794672 发表于 2020-8-12 17:14:57

是main不是mian。mian就等于你自写函数了,你设定了int,就必须有return返回。而main函数可以不写,是因为编译器自动给你加上了。
页: [1]
查看完整版本: vc2010 error C4716: “mian”: 必须返回一个值