当前位置:首页 » 编程语言 » 为什么c语言程序运行不出来
扩展阅读
webinf下怎么引入js 2023-08-31 21:54:13
堡垒机怎么打开web 2023-08-31 21:54:11

为什么c语言程序运行不出来

发布时间: 2022-06-07 10:35:56

c语言不知道为什么运行不了

编译期错误。这是指在程序的编译过程中由编译程序识别或检查出来的错误,常称之为"语法错误"。诸如不符合规定的语句格式、对象说明与使用不一致、不正确的分隔符、不存在的标号、不正确的初始化数据、不恰当的循环嵌套等等。在编译期发现一个错误后,编译工作并不立即停止,而是尽可能多地找出源程序中的全部错误。

第二类,连接错误。这是指连接程序在装配目标程序时发现的错误,通常由于函数名书写错误、缺少包含文件或包含文件的路径错误等原因引起的。

第三类,运行期错误。这是指可执行程序执行过程中发现的错误。如在计算过程中遇到了除数为零的错误、求一个负数的平方根等等。编译系统发现这类错误后如无特殊指示通常告知一些适当信息,然后立即停止程序的执行。当然,为阻止这类错误的出现,程序设计者可在程序中编入一些由自己来检查这类错误的程序段,这可能更适合于自己的处理要求。

第四类,逻辑性错误。这类错误是在编译期、连接期和运行期都不能发现的错误。如程序中把log写成了log10,把x+y写成了x-y等。显然编译系统是无法查出这类错误的。

第五类,警告性错误。这类错误是指编译系统在编译阶段发现程序中有一些可疑的或含混不清的地方,如源程序中发现了一个定义过但从未使用过的变量。这类情况从语法上讲是正确的,因此一般不会停止编译,在大多数情况下不会阻止目标程序与可执行程序的生成、连接和运行。但是对这类错误不应掉以轻心,应仔细检查程序,这往往存在着某种潜在的运行期错误。

Ⅱ C语言编译好后为什么运行不出结果呢

这段代码有问题:while(1){printf ("Hello/n");}循环语句没有终止条件,循环会一直进行下去,得不到结果。

当前阶段,在编程领域中,C语言的运用非常之多,它兼顾了高级语言和汇编语言的优点,相较于其它编程语言具有较大优势。计算机系统设计以及应用程序编写是C语言应用的两大领域。同时,C语言的普适较强,在许多计算机操作系统中都能够得到适用,且效率显着。

C语言是一门面向过程的计算机编程语言,与C++、C#、Java等面向对象编程语言有所不同。C语言的设计目标是提供一种能以简易的方式编译、处理低级存储器、仅产生少量的机器码以及不需要任何运行环境支持便能运行的编程语言。

C语言描述问题比汇编语言迅速、工作量小、可读性好、易于调试、修改和移植,而代码质量与汇编语言相当。C语言一般只比汇编语言代码生成的目标程序效率低10%-20%。因此,C语言可以编写系统软件。

Ⅲ C语言程序,没有错误,但是运行不出来

  1. 指针开辟空间的方法有问题

  2. 变量用错,current没有赋值就用在循环里了。

  3. scanf读入时的后面是加指针,字符串名本来就是指针,不需要&符号。

  4. 冒泡排序方法有问题。

正确的代码如下:

#include<stdio.h>

#include<stdlib.h>

#define N 100


int current;

typedef struct student

{

char *num;

char *nam;

float chinese;

float english;

float math;

double average;

float sum;

}STU;

STU stu[N]; //定义结构体数组


void bubbleSort(STU *arr, int n)

{

int i,j;

STU m;

for(i=0;i<n-1;i++)

{

for(j=0;j<n-1-i;j++)

{

if(arr[j].sum < arr[j+1].sum)

{

m=arr[j];

arr[j]=arr[j+1];

arr[j+1]=m;

}

}

}

return;

}


int main(){

int i,t;

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

scanf("%d",&t);

for(i=0; i<t; i++){

printf("请输入学生的学号: ");

stu[i].num = (char *)malloc(sizeof(char)*10);

scanf("%s",stu[i].num);

printf("请输入学生的姓名: ");

stu[i].nam = (char *)malloc(sizeof(char)*10);

scanf("%s",stu[i].nam);

printf("请输入学生的语文成绩: ");

scanf("%f",&stu[i].chinese);

printf("请输入学生的数学成绩: ");

scanf("%f",&stu[i].math);

printf("请输入学生的英语成绩: ");

scanf("%f",&stu[i].english);

//输出每个学生的平均成绩

stu[i].average=(stu[i].chinese + stu[i].math + stu[i].english)/3.0;

printf("学生%s的平均成绩为:%.2f ",stu[i].nam,stu[i].average);

//输出每个学生的总成绩

stu[i].sum=(stu[i].chinese + stu[i].math + stu[i].english);

printf("学生%s的总成绩为:%f ",stu[i].nam,stu[i].sum);

} //录入学生成绩

bubbleSort(stu, t);

printf("按总分由高到低输出学生的信息为: ");

for(i=0; i<t; i++){

printf("学生姓名:%s 学生学号:%s 语文:%f 英语:%f 数学:%f 总分:%.2lf 平均分:%f ",

stu[i].nam,stu[i].num,stu[i].chinese,stu[i].english,stu[i].math,stu[i].sum,stu[i].average);

}

for(i=0; i<t; i++){

free(stu[i].num);

free(stu[i].nam);

}

return 0;

}

Ⅳ C语言程序没有错误,但是运行不了。

你的代码是错了,所以才会这样。错误的地点在输出上,也就是
最后一句
printf("%d %c %s", ss.age, ss.name, ss.sex);你定义的name是字符串,而sex是字符。所以应该改成
printf("%d %s %c", ss.age, ss.name, ss.sex);

Ⅳ C语言程序,运行不出来结果

如图中1处,没有输出的猪腰子问题在这里,p的初始值应为a.而不是0,因为之前已经定义了p=a这里可以改成for(;p<a+5;p++)。

另外第二处经过for循环,p已经指向数组的下一个地址,此时输出值不确定。这里没有语法错误。需要注意就是。

Ⅵ 我的c语言程序为什么会执行不了

程序语法上没有问题。如果你的编译器不支持汉字编码,则用 英文 ASCII 字符为好。
另外,注意输入数据 的 格式,格式不对会执行不了。
假定用英文:
#include <stdio.h>
int main(void)
{
char cType=0,dType=0;
float amount=0,rate=0;
printf("input c f c\n");
scanf("%c %f %c",&cType,&amount,&dType);
switch(dType)
{ case '1': rate = 1.5; break;
case '2': rate = 2; break;
case '3': rate = 3; break;
case '4': rate = 3.2; break;
case '5': rate = 3.5; break;
default: printf("no such dType\n"); return -1;
}
if(cType=='V') rate = rate *1.1;
if(amount>=100000) rate = rate *1.2;
printf("rate:%.2f%%\n",rate);
return 0;
}
输入: V 12345 3
输出: rate:3.30%
输入: 3 12345 3
输出: rate:3.00%

Ⅶ C语言新手,为啥程序运行不了

程序中变量定义的第二行上sum=0后面不能是逗号,而应该是分号。主要的编译错误,就在于这里。另外在输出数据的时候就是再返回语句上面一行输出数组元素j时,后面应该加一个空格,不然的话,所有的数据都连到一起,变成一个数字就分不清了。