一个c语言的问题,可以编译,不能运行,求指点!
发布网友
发布时间:2024-08-20 10:15
我来回答
共4个回答
热心网友
时间:2024-08-24 05:48
有两个小错误。
#include<stdio.h>
#define N 15
int main()
{
int i,number,top,bott,mid,loca,a[N],flag=1,sign;
char c;
printf("enter data:\n");
scanf("%d",&a[0]);
i=1;
while(i<N)
{
scanf("%d",&a[i]); //scanf函数打错了
if(a[i]>=a[i-1])
i++;
else
printf("enter this data again:\n");
}
printf("\n");
for(i=0;i<N;i++)
printf("%5d",a[i]);
printf("\n");
while(flag)
{
printf("input number to look for:");
scanf("%d",&number);
sign=0;
top=0;
bott=N-1;
if((number<a[0])||(number>a[N-1]))
loca=-1;
while((!sign)&&(top<=bott))
{
mid=(bott+top)/2;
if(number==a[mid])
{
loca=a[mid];
printf("Has found %d its position is %d\n",number,mid+1); //loca+1改为mid+1
sign=1;
}
else if(number<a[mid])
bott=mid-1;
else
top=mid+1;
}
if(!sign||loca==-1)
printf("cannot find %d.\n",number);
printf("continue or not(Y/N)?");
scanf("%c",&c);
if(c=='N'||c=='n')
flag=0;
}
return 0;
}
热心网友
时间:2024-08-24 05:43
代码看着是没为题的。 为什么不能运行呀。 运行了会出现什么情况。
热心网友
时间:2024-08-24 05:41
while循环下的scanf 错了,,,
热心网友
时间:2024-08-24 05:41
程序的目的是为了输入一组数,然后查找某个数在不在这组数内吗?如果有返回位值么?你的第二个scanf()拼错了。。。
c语言程序总运行不了,怎么回事啊?求高人指点。。。下面是我写的程序...
1、你传递的参数没有按照函数定义的参数类型。比如insert(int score[],int n,int x,int i)但是使用时if(insert(score[N],i,x,*n)==1) 。第一个参数本来是传递数组指针,结果你传递的是一个越界的数组元素,第一个参数应该改为score。第二个和第四个参数至少从名字上看是相反的,不知道是你...
c语言编程问题,求高手解答(高分)
你的程序没有大的问题,可以执行,只是以下几个小问题:一、第一行包含的文件不存在,这一行应该删除。二、定义了argc、argv两个变量没有使用,编译会有警告,可以删除他们或者不管,最好改为:int main()三、scanf输入n和k的时候,中间有个逗号分隔,这样输入的时候会麻烦,最好改为:scanf("%d%d...
高手请进,一个C语言编译的问题(关于位异或)
C源程序头文件-->预编译处理(cpp)-->编译程序本身-->优化程序-->汇编程序-->链接程序-->可执行文件 其中,你所说的变量数据类型检查,是在“编译程序本身”这个阶段进行的,而if条件怎样,是否有执行不到的代码,这些检查是在“优化程序”阶段进行的。因此,这种非法类型使用将在“编译程序...
关于一个C语言写的代码无法运行出结果
int main(int argc,char *argv[]){double input, flo_num_1, flo_num_d, flo_num_2, flo_out_d, flo_out, term_2, term_4;double num_flo_1, num_flo_2, outputnum;const double lim_minu=0.00000001;int redix_1, redix_2;long long int int_num_1, int_num_d, int_num_...
c语言编程总无法运行,检查错误说main有问题
程序算法有问题,会出现死循环(用f10单步执行看看你就知道了),自己再检查一下吧 这类问题用链表来做很简单的,下面我用的是双向循环链表来实现的,可以参考一下 include "stdio.h"include "stdlib.h"include "malloc.h"define NULL 0 struct List { int data;char name[15];struct List *next...
c语言新手问题,为什么输出不了?一输出程序就崩溃,难道我指针用错了...
最后一句,printf("%s",b);就可以了。因为b是字符串指针了。
C语言小程序求指点,说是语法错误执行不了
错误有点小多,不过熟能生巧 修改如下 include <stdio.h> //这里修改成 <> 包含头文件 include <math.h> int main() //这里加上 int main() ,每个c/c++程序必须有一个主函数 { double a,b,c,x1,x2,q,p,disc;scanf("%f%f%f",&a,&b,&c); //这里加上逗号 disc= b*b - ...
C语言的一个问题。。求解答。
这个程序是要输出m的值其实也就是for循环运行的次数,这是两个for循环嵌套:首先,i=1满足条件,执行第二个for循环j=3满足条件m自加1,此时m=1,然后回到内层的for循环的第三个条件执行j=j+4得到j=7,满足条件m再自加1,m=2,。同理j=11、15、19时又各执行一次m++,此时m为5,再下去就不...
Ubuntu11.04 C语言编译后不能运行
我知道是什么问题了,你是不是把它放在NTFS的文件系统中??记住:在Ubuntu下,NTFS格式分区的任何文件都没有可执行权限!不管你怎么添加都没有 也就是说,你把你的代码放在你的Home目录,然后编译运行才是王道!!
有一个c语言的问题不会,求大神指教!!
break是跳出当前的包含 break的最近的一层循环。循环就是,因为a=1,已经赋值了,所以for的第一个没有,只写了一个分号,表示从a=1 开始,进行循环体的内容,如果a是偶数,则跳出for循环。如果不是偶数,则b=b+a,然后a= a+1,继续循环,这一次,a是偶数了,跳出for循环,所以后面那个b+=a就...