C语言主函数不执行调用函数语句,这是为什么啊?

进行C语言数组练习的时候,想再试试函数调用,代码粘到函数里后,运行时main里没有执行新函数,也没有警告报错,求大家解惑,不胜感激!

运行结果:

img

这是源码

#include
#include

void OneDimensionalArray(){
    int a[10]={1,2,3,4};                //定义并初始化一个整型数组 
    float b[20]={1.1,2.2,3.3};            //定义并初始化一个浮点型数组 
    char c[5]={'a','b','C'};            //定义并初始化一个字符型数组 
    char d[]={"China"};                    //定义并初始化一个字符型数组 
    
    for(int i=0;i<5;i++)                //输出整型数组a 
    printf("%-2d ",a[i]);
    printf("\n");
    
    for(int i=0;i<5;i++)                //输出浮点型数组b 
    printf("%.2f ",b[i]);
    printf("\n");
    
    for(int i=0;i<strlen(c);i++)        //输出字符型数组c 
    printf("%c",c[i]);
    
    printf("\n%s\n",c);                    //输出字符型数组c 
    printf("%s\n",d);                    //输出字符型数组d 
    
    printf("%d\n\n",strlen(d));                //输出数组d的长度
    
} 

void TwoDimensionalArray(){
    int a[3][4]={1,2,3,4,5,6,7,8,9};
    //int a[3][4]={{1,2,3,4},{5,6,7,8},{9}};
    
    for(int i=0;i<3;i++){
        for(int j=0;j<4;j++){
            printf("%-2d",a[i][j]);
        }
        printf("\n");
    }
    
}

int main(void){
    
    printf("\n---一维数组练习---\n\n"); 
    void OneDimensionalArray();
    
    printf("---二维数组练习---\n\n");
    void TwoDimensionalArray();
    
    return 0;
}

把语法学好吧,调用函数的时候不需要加前面的void

把main函数里面的那个void去掉试试,因为带void等返回值表明是函数声明而不是函数调用,修改如下:

#include <stdio.h>
#include <string.h>
 
void OneDimensionalArray(){
    int a[10]={1,2,3,4};                //定义并初始化一个整型数组 
    float b[20]={1.1,2.2,3.3};            //定义并初始化一个浮点型数组 
    char c[5]={'a','b','C'};            //定义并初始化一个字符型数组 
    char d[]={"China"};                    //定义并初始化一个字符型数组 
    
    for(int i=0;i<5;i++)                //输出整型数组a 
    printf("%-2d ",a[i]);
    printf("\n");
    
    for(int i=0;i<5;i++)                //输出浮点型数组b 
    printf("%.2f ",b[i]);
    printf("\n");
    
    for(int i=0;i<strlen(c);i++)        //输出字符型数组c 
    printf("%c",c[i]);
    
    printf("\n%s\n",c);                    //输出字符型数组c 
    printf("%s\n",d);                    //输出字符型数组d 
    
    printf("%d\n\n",strlen(d));                //输出数组d的长度
    
} 
 
void TwoDimensionalArray(){
    int a[3][4]={1,2,3,4,5,6,7,8,9};
    //int a[3][4]={{1,2,3,4},{5,6,7,8},{9}};
    
    for(int i=0;i<3;i++){
        for(int j=0;j<4;j++){
            printf("%-2d",a[i][j]);
        }
        printf("\n");
    }
    
}
 
int main(void){
    
    printf("\n---一维数组练习---\n\n"); 
   OneDimensionalArray();
    
    printf("---二维数组练习---\n\n");
    TwoDimensionalArray();
    
    return 0;
}

img

在main函数里,调用函数,不能写函数声明的形式,应去掉void字样即可。

把第44行 47行 前面的 void 删除。