1. c语言打完代码不能编译了,编译键按不了 软件没死
delta = b*b - 4*a*a; 不是 4ac吗?而且有两个解不是delta>0吗?x1和x2不是一个 -b+ ;一个 -b- 吗?
els (delta = 0)
{
x1 = (-b) / (2*a);
x2 = x1;
pronat(该方程有1解, x1 = x2 = %f\n", x1)
else写错了 printf写错了 输出语句少了一个引号。
delta==0不是delta=0;而且应该是else if
最后一个是else
printf("该方程无解");
还有其他错误
你怎么学的哟----
# include <stdio.h>
# include <math.h>
void main()
{
int a = 1;
int b = 2;
int c = 3;
double delta;
double x1;
double x2;
delta = b*b - 4*a*a;
if (delta >0)
{
x1 = (-b + sqrt(delta)) / (2*a);
x2 = (-b + sprt(delta)) / (2*a);
printf("该方程有2解, x1 = %f, x2 = %f\n", x1 x2);
}
else if (delta== 0)
{
x1 = (-b) / (2*a);
pronat("该方程有1解, x1 = x2 = %f\n", x1)
}
else
{
printf("该方程无解\n");
}
}
2. 怎样终止C语言的编译
windows下按下CTRL+ALT+Del调出任务管理器,然后找到VC的进程结束进程就可以了。VC可能会提示你,直接点确定,然后重启VC
3. C语言代码运行问题,为什么编译通过,但是运行时直接结束,没有输入
请把最后两行从main()中移出来:
typedef struct tree
{
int weight;
int parent;
int lchild;
int rchild;
}HTNode,*HuffmanTree;
//定义编码
typedef struct code
{
int bit[MAX];
int start;
}HCNode,*HuffmanCode;
HTNode HT[MAX]; //移到这里
HCNode HC[MAX];
4. c语言代码执行到一半终止
大概问题,我已经知道了,所谓的执行到一半就终止,是因为数组越界了,而且编译器不会报警。
比如,在你这个程序里,我输出50-200,他永远只会提示你有21个,因为你输出之前,还需要把这个偶数存放到一维数组a中,然而一维数组只能存放20个数,50-200中间有76个偶数,到了第20个偶数的时候,数组就已经越界了,程序就运行不正常了,应该是直接跳出了循环。而你是在数组存放了第20个数的后面进行了i++,所以提示是第21个数,数组是从0开始计数的,你是从一开始提示的,所以第21个数其实就是数组a[20]的数,然后就跳出循环了,只要偶数大于21个,程序永远都只显示21个数,建议要么把数组去掉,这样就可以显示全部的偶数了,就正常了,要么把数组设置的大一点,但是这样,如果数太多了,还是会溢出的,看你的感觉是想保存前20个偶数,那么建议程序改成这样,就能即保存前20个数,显示的也是正常的。
代码如下:
#include <stdio.h>
#include <windows.h>
int main()
{
int a[20];
int c,d,e,f,g,h,i;
long b;
printf("起始值:");
scanf("%d",&c);
printf("终止值:");
scanf("%d",&d);
d++;
for(b=c;b<d;b++)
{
if(b%2==0)
{
if(i<20)
{
a[i]=b;
}
i++;
printf("第%d个偶数:%d\n",i,b);
}
}
printf("%d到%d中有%d个偶数",c,d,i);
return 0;
}
5. 为什么我用C语言编译的时候,没有错误,但是就是运行不出来结果
现在我来回答一下吧:
参照下面本人的例子来说明一下:
#include <AT89X51.h>
#include <stdio.h>
int main (void)
{
SCON = 0x50;
TMOD = 0x20;
TCON = 0x40;
TH1 = 0xE8;
TL1 = 0xE8;
T1 = 1;
TR1 = 1;
while (1)
{
printf ("Hello World!\n");
}
return 0;
}
代码的具体意思怎么样,我就不解释了,重点放在如何实现从串口调试窗口中输出printf的内容吧。
其实很简单,将代码编译链接后,开始调试,分别打开view -> serial window #1
然后,我们按run键,此刻,serial window #1并没有任何内容,症结在哪儿呢?
我们回想一下串口通信的知识吧,知道了吧,我们没有在代码中设置串口发送寄存器中的内容,也就是,我们根本就还没启动串口发送消息。
这下好办,我们继续打开peripherals -> serial channel这个就是串口寄存器控制中心,我们在给其中的TI前面打上个勾,也就是启动串口发送消息。
在此,我们就可以看到串口调试窗口中输出printf的内容了~
上面的代码是我参照那本书上的例子,我分析后,发现其实是它的代码出错了,只要把代码改正,也就不用那么麻烦了,经过上面这一步,估计大家猜到错误出在哪里了,就就是:
T1 = 1;
我们改回:
TI = 1;
然后直接运行就可以看到效果了!
6. 看看这个程序C语言 编译没问题 运行终止
#include<stdio.h>
#defineMAX100
char*lookupLongestStr(charpch[][MAX],intn,int*maxlength)
{
intc[4]={0},t=0,i=0,j=0;
char*p;
for(i=0;i<n;i++)
{
for(j=0;pch[i][j]!='