C++程序无法进入到main函数,代码、运行结果如下

C++程序无法进入到main函数,代码、运行结果如下,第1张

解决1:使用了printf之类的库函数,需要编写_sys_exit()之类底层函数。照你的提示看,也许是_sys_open()没写。_sys_xxx之类的的只要写个空函数就行了;因printf()之类的函数,使用了半主机模式。使用微库的话,不会使用半主机模式,所以就没有问题

解决方法2:勾选“微库”MicroLIB--->Use MicroLIB

死循环了,在

printf("dasdw")// 运行后输出不了!

后面加上这个,

getchar()

dasdw打印出来了,然后while循环就一直做

#include<stdio.h>

#include<stdlib.h>

#define M 100

#define N 2 //不要介意这两个数,是为了方便控制输入数据而定义的.

void input_stu(double score[M][N],int n)

void aver_stu(double as[],int n)

void aver_cour(double ac[],int n)

void output_stu(double as[],double ac[],int n)

double score[M][N]

int main(void)

{

int n

// double score[M][N] //这个成绩改为全局变量,明显,你在子函数中要用到这些数据,

//放到上面,这是问题1

double as[M],ac[N]

printf("请输入学生人数:")

scanf("%d",&n)

input_stu(score,n)

aver_stu(as,n)

aver_cour(ac,n)

output_stu(as,ac,n)

return 0

}

void input_stu(double score[M][N],int n) //这里输入的数据放了全局数组score中,下面才有数据去计算,此段没有问题

{

int i,j

printf("输入学生N门成绩")

for(i=0i<ni++)

{

printf("\n%d:\n",i+1)

for(j=0j<Nj++)

scanf("%lf",&score[i][j])

}

}

void aver_stu(double as[],int n)

{

int i,j

//double score[M][N] ,

//有问题2这里定义的score只会在这个函数过程中生效,。。。里面全是0

//所以下面计算值全是0 ,下面课目平均分函数也是这样。都要去掉,才能用到全局score中保存的输入数据

double sum

for(i=0i<ni++){

sum=0

for(j=0j<Nj++){

sum=sum+score[i][j]

as[i]=sum/N

}

}

}

void aver_cour(double ac[],int n)

{

int i,j

double s

//double score[M][N] 有问题3,同问题2

for(j=0j<Nj++)

{

s=0

for(i=0i<ni++)

s=s+score[i][j]

ac[j]=s/n

}

}

void output_stu(double as[],double ac[],int n)

{

int i,j

//double score[M][N]//有问题4

for(i=0i<ni++){

printf("\n第%d学生平均分:%.2lf\n",i+1,as[i])

}

for(j=0j<Nj++){

printf("课程平均分:%.2lf ",ac[j])

printf("\n")

}

}

//现在你再试。保证一试OK。

//要分清 变量的作用域!!!

//把函数中的变量想象为函数的私有财产,全局变量想象为公有财产,

//一句话可以理解为:我的就是我的,阿爷的也是我的。


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/yw/12020022.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-20
下一篇 2023-05-20

发表评论

登录后才能评论

评论列表(0条)

保存