① 编写c语言代码是无法执行程序是怎么回事
C语言代码本身是不能被执行的,必须要进行编译后才能产生可执行文件。
C语言编译的过程中会自动产生两个文件,其文件后缀分别是.o和.exe。
.o是编译文件,用于减小更改程序后再编译时的时间。
.exe 是可执行文件,在Windows系统下,只有.exe才是可以执行的程序。
如果在编译后没有产生对应的.exe文件就代表程序代码出现问题,未通过编译。
② 为什么c语言无法运行程序
首先,检查一下程序里有没有中文字符。
其次,用#include"stdio.h"这种方式调用需要.h文件在当前路径下。我个人认为改成#include<stdio.h>比较好。
再其次,没有getch这个函数,只有getchar,建议你拿不准的时候网络。
语法的问题基本就是这些,说说语义,你的a没复制直接printf没有意义。
忘说了,还要在最后加上return 0;,虽然不加可能也没什么关系,编译器可能会自己给你加,但是还是加上好。
③ 为什么这个C语言程序不能运行
第1,*p=
&max;,应该改为p
=
&max
p是int型指针,这样才类型匹配。
第2,fscanf(stdin,
"%d",
a[i]
这一行,
a[i]应该成&a[i],
fscanf传入的是地址,漏&是初学者常见错误。
好像就这两个错,希望能对。
补充一下,while(fscanf(...)
==
1)这里是个死循环,就是说你的程序不会停的啊,你可以改成读到负数就停之类的。
要是输入一行就停的话,需要先把这一行读入,再分析数字才能做到。
④ C语言没有错误,但是无法执行
无法运行可能遇到的问题:
编译没错,但是运行后弹出内存相关报错------》有逻辑错误,或者内存调用错误
运行直接闪退---------------》有可能该程序无任何执行结果输出语句,或者使用编译器(or IDE)与操作系统不兼容
暂时只能想起这么多了。
⑤ c语言程序无法运行,求大佬
如果语言无法运行的话,那肯定是他的源程序中有了一些错误的编码。
⑥ 为什么C语言安装后无法运行程序
看了题主的贴图,VC编译器报错很清楚:无法编译这个扩展名是“.txt”的文件,编译工具(此处就是微软的VC编译器)没有关联这种文件扩展名(也就是“.txt”)。
C/C++的源代码不都是文本文件吗,为什么还编译不了?因为我们在保存C/C++源代码时会把文件的扩展名改为“.c”。如果要是头文件的话,我们会将扩展名保存为“.h”。
其实题主应该注意到,你写的代码中关键字信息(比如void)没有特殊显示。毕竟你使用的是IDE工具,所以这是很不正常的,原因也在于文件的扩展名问题!
如何修改扩展名?有很多方法,最简单的方法就是在Windows中关闭“隐藏已知文件类型的扩展名”之后,
在修改文件名时修改扩展名。
题主作为初学者,犯这种各样的错误无可厚非。请题主注意的是,计算机是严谨甚至刻板的学科,有些时候还认死理,所以要注意细节。
⑦ 自己编的C语言程序无法运行
获取输入的函数用法不对。后面的参数应该传是的变量的地址:
scanf("%d,%d,%d",
&a,&b,&c
);
而且输入的时候,要严格按键指定的格式输入,包括逗号。
⑧ C语言 程序无法运行
#include <stdio.h>
#include <string.h>
char a[100];
char *c = "Sam";
char *d = "韦昊明";
int b = 0, e;
int main(void)
{
do
{
printf("Who are you? ");
scanf("%s", &a);
if(strcmp(a, c) == 0 || strcmp(a, d) == 0 )
{
printf(" Sam!! Sam!! Sam!! ");
printf("Sam!! Sam!! Sam!! ");
printf("Sam!! Sam!! Sam!! ");
printf("Sam!! Sam!! Sam!! ");
printf("Sam!! Sam!! Sam!! ");
printf("Enter 1 to continu, 2 to quit.");
scanf("%d", &b);
}
else
{
printf("Error: This program is not prepared for you. ");
printf("Please use the correct name. ");
printf("Enter 1 to continu, 2 to quit. ");
scanf("%d", &b);
}
}
while( b == 1 );
return 0;
}
指针a没有初始化,没有指向具体的内存空间,往里面输入字符串就是非法访问。
这样定义
chara[100];
⑨ C语言程序无法运行
turbo c编译出来的是16位的DOS程序,涉及到直接存取磁盘、显示内存的时候,不能在32位的OS下正确运行。。。
XP下通常只是以v86(模拟/虚拟86)方式运行DOS程序,包括tc/wintc本身。
⑩ C语言程序无法运行,求解
堆栈溢出!!!
导致原因是你代码中的如下片段:
#define
SUBJECTS_NUM
10
//诊别资料最大数目
#define
DOCTORS_NUM
50
//医生资料最大数目
#define
MEDICINES_NUM
100
//药物资料最大数目
#define
MATCHES_NUM
500
//校对资料最大数目
#define
PATIENTS_NUM
1000
//病人资料最大数目
#define
REPORTS_NUM
5000
//挂号资料最大数目
。。。
struct
SUBJECT
subjects[SUBJECTS_NUM+1],
sub;
//诊别资料
struct
DOCTOR
doctors[DOCTORS_NUM+1],
doc;
//医生资料
struct
MEDICINE
medicines[MEDICINES_NUM+1],
med;
//药物资料
struct
MATCH
matches[MATCHES_NUM+1],
mat;
//校对资料
struct
PATIENT
patients[PATIENTS_NUM+1],
pat;
//病人资料
struct
REPORT
reports[REPORTS_NUM+1],
rep;
//挂号资料
就是定义的数组太大了。。(具体是5000那个比较恐怖,1000
VC6还可以)
解决办法:
增大堆栈容量就,具体看你用的什么编译器,相应加大堆栈容量就可以。
以VC6为例子:
默认VC6编译器堆栈容量1M.
更改方法如下:
工程
-->
设置
-->
连接
-->
"分类"
下拉菜单选
"输出"
-->
在堆栈分配栏的
"保留"
编辑框处写堆栈新容量,比如加大为
0x1000000。
然后即可。
补充回答:
if
(
!(fp_subjects
=
fopen(SUBJECTS_FILE,
"r"))
)
//开启诊别档
{
printf("无法开启诊别档,
程序终止!");
printf("\n");
exit(1);
你看看你代码目录下有相关文件没??这个好理解啊。。你没文件,打开文件当然不行了。。。另外你若问什么建档?还来什么格式,那你就真不应该了。。,
这个问题应该问你自己,
莫非你这代码是
来的,
然后根本不知道怎么回事,
不知道这代码是做什么的,
在你玩这代码的时候,你应该先去了解它是干什么的,这个问题真不应该问,
要问你也应该是有所了解的情况下,
有可能在代码实现的时候你看不懂,
然后你可以把相应你不懂的代码帖出来,
这样我可以给你分析。