为什么第三个scanf 不执行(求大佬帮助)

#include
#define MAX 1000

int main() {
int n;
int b;
int a[MAX];
scanf("%d", &n);
for (int i = 0; i < n; i++) {
scanf("%d", &n);
a[i] = n;
}
printf("请输入所查找的值\n");
scanf("%d",&b);
for (int i = 0; i < n; i++)
{
if (a[i] == b) {
printf("第%d给元素为所找元素", i);
break;
}
printf("未找到此元素");
}

样例输入4
1 2 3 4 
3
样例输出2

图片说明

4个回答

for (int i = 0; i < n; i++) {
        scanf("%d", &n);
        a[i] = n;
}

这部分程序出现问题,for循环里面使用scanf语句输出n后,将n值改变了也就是
for循环的次数变了。会造成输出错误。应改为:

for(i = 0; i < n; i ++) {
        scanf("%d",&a[i]);
    }

scanf("%d", &n);
a[i] = n;
->
scanf("%d", &a[i]);

scanf("%d",&b);
前面加上
fflush(stdin);

for (int i = 0; i < n; i++) {
scanf("%d", &n);
a[i] = n;
}

手动输入n后,for循环的中止条件也在不断变化,循环次数未知。
应该使用另一个变量来接收输入的数值。
后面,找到指定的数后,也会走到printf("未找到此元素");需要改改,推荐goto
另外,printf最好都加上\n

不知道有没有理解错,可供参考

#include <stdio.h>
#include <windows.h>
#define MAX 100
int main()
{

    int n=0, b=0, a[MAX];
    memset(a, 0, sizeof(a) );
    BOOL flag = FALSE;
    printf("请输入一个小于100的数:");
    scanf_s("%d", &n);
    while (n > 100 || n < 0)
    {
        printf("请重新输入一个数:");
        scanf_s("%d", &n);
    }
    for (int i = 0; i < n; i++)
    {
        a[i] = i;
    }
    printf("请输入所查找的值:");
    scanf_s("%d", &b);
    for (int i = 0; i < n; i++)
    {
        if (a[i] == b) {
            printf("第%d个元素为所找元素\n", i);
            flag = TRUE;
            break;
        }

    }
    if (!flag)
    {
        printf("未找到元素\n");
    }
    system("pause");
    return 0;
}
Csdn user default icon
上传中...
上传图片
插入图片
抄袭、复制答案,以达到刷声望分或其他目的的行为,在CSDN问答是严格禁止的,一经发现立刻封号。是时候展现真正的技术了!
其他相关推荐
scanf不执行,请教,为什么
所有代码如下rn#includernvoid main()rnrn float x,y,a,b,res;rn char cho='3';rn printf("First,input variable x,y,a,b\n");rn scanf("%f,%f,%f,%f",&x,&y,&a,&b);rn printf("x=%f,y=%f,a=%f,b=%f\n",x,y,a,b);rn printf("Please enter 1 or 2\n");rn scanf("%c",&cho);//!!!!!!!这句不执行,请教,为什么rn printf("cho=%c\n",cho);rn if(cho=='1')rn rn res=x+(int)a%3*(int)(x+y)%2/4; rn rn rn elsern rn res=(float)(a+b)/2+(int)x%(int)y;rn printf("222\n");rn rnrn printf("Result is %f\n",res);rnrnrn
为什么不执行scanf
main( ) rnchar y='y';rnlong a;rnint c;rnchar b[20];rnfor(;y=='y';)rn rn printf("\n please input stnumber name score");rn scanf("%l,%s,%d",&a,b,&c);跳过了,为什么不执行rn printf("\n have other student's information "); rn scanf("%c",&y);rnrn rn
各位大佬求帮助
我的win10系统进去以后,在桌面随便打开一个程序运行几分钟  退回桌面就会好像桌面没刷出来一样  点不了桌面上程序  但键盘可以用   可以通过打开一次任务管理器恢复正常   求教大佬们怎么解决呀[img=https://forum.csdn.net/PointForum/ui/scripts/csdn/Plugin/001/face/5.gif][/img][img=https://forum.csdn.net/PointForum/ui/scripts/csdn/Plugin/001/face/5.gif][/img]
求大佬们帮助
!/bin/bashrn#/usr/sbin/httpd -DFOREGROUND -domain=xiejl.com -httpAddr=:80 &> /dev/null &rnparam=" &> /dev/null &"rnmemsize=`ps -aux | grep "/usr/sbin/httpd -DFOREGROUND" | grep -v grep | awk 'printf $6 '`rnecho $memsizernif [[ $memsize -gt 3080 ]]; thenrn echo "restart begin"rn httpd -DFOREGROUND_restart=`ps -aux | grep "/usr/sbin/httpd -DFOREGROUND" | grep -v grep | awk 'for(i=11;i<=NF;i++)printf $i " "'`rn echo $httpd -DFOREGROUND_restartrn pkill -f /usr/sbin/httpd -DFOREGROUNDrn eval "$httpd -DFOREGROUND_restart $param"rn echo "restart over"rnelif[ -z$memsize ];thenrn echo "start begin"rn eval "/usr/sbin/httpd -DFOREGROUND -domain=xiejl.com -httpAddr=:80 $param"rn echo "start over"rnfirnrn[root@localhost sbin]# bash ehaha.shrn: 没有那个文件或目录bashrn495231083108310831083108rnehaha.sh:行18: 语法错误: 未预期的文件结尾rnrn我用bash执行这个文件的时候就是报这个错 ,一共就17行,然后第18行报错。[img=https://forum.csdn.net/PointForum/ui/scripts/csdn/Plugin/001/face/34.gif][/img]rn大佬们帮忙看一下吧rn
求大佬帮助
[size=18px]我从网上找了个求最短路径的程序,然后自己改了改,没错误,但是运行不成功,求大佬指点[/size]rn这是我的实验内容:rn[size=16px]三、实验内容rn设计一个旅游景点导游模拟程序,为来访的客人提供景点最短路径的信息查询服务,任意选取n城市,构成一个有向带权图,图中顶点表示城市,边上的权值表示两点间的距离,根据用户指定的始点和终点输出相应的最短路径。rnrn四、实现提示rn咨询以用户和计算机的对话方式进行,由用户输入起始点和终点,输出信息:最短路径是多少?并指出所经过的城市。rn存储结构可选用邻接矩阵。[/size][code=c]#include rn#include rnrn#include rnrnrn#define MAXVEX 100 /* 最大顶点数,应由用户定义 */rn#define INFINITY 65535rntypedef int Status; /* Status是函数的类型,其值是函数结果状态代码,如OK等 */rntypedef char VertexType; /* 顶点类型应由用户定义 */rntypedef int EdgeType; /* 边上的权值类型应由用户定义 */rntypedef structrnrn VertexType vexs[MAXVEX]; /* 顶点表 */rn EdgeType arc[MAXVEX][MAXVEX];/* 邻接矩阵,可看作边表 */rn int numNodes, numEdges; /* 图中当前的顶点数和边数 */rnMGraph;rnrn/* 建立无向网图的邻接矩阵表示 */rnvoid CreateMGraph(MGraph *G)rnrn int i,j,k,w;rn printf("输入顶点数和边数:\n");rn scanf("%d,%d",&G->numNodes,&G->numEdges); /* 输入顶点数和边数 */rn for(i = 0;i numNodes;i++) /* 读入顶点信息,建立顶点表 */rn rn printf("输入图的顶点\n");rn fflush(stdin);//清空输入缓冲区,为了确保不影响后面的数据读取rn scanf("%c",&G->vexs[i]);rn getchar();rn rn printf("通路");rn for(i = 0;i numNodes;i++)rn for(j = 0;j numNodes;j++)rn rn if(i==j)rn G->arc[i][j]=0; /* 邻接矩阵初始化 */rn elsern G->arc[i][j]=INFINITY;rn rn printf("通路");rn for(k = 0;k numEdges;k++) /* 读入numEdges条边,建立邻接矩阵 */rn rn printf("输入边(vi,vj)上的下标i,下标j和权w:\n");rn scanf("%c,%c,%d",&i,&j,&w); /* 输入边(vi,vj)上的权w */rn getchar();rn G->arc[i][j]=w; rn rn rn printf("通路");rnrnrnvoid Floyd(MGraph *G)rnint A[MAXVEX][MAXVEX];rnint path[MAXVEX][MAXVEX];rnint i,j,k,n,next;rnn=G->numNodes;rnfor(i=0;iarc[i][j];rnpath[i][j]=-1;rnrnfor(k=0;kA[i][k]+A[k][j])rnrnA[i][j]=A[i][k]+A[k][j];rnpath[i][k]=k;rnrnrnfor(i=0;i%d",next);rnnext=path[next-1][j];rnrnprintf("-->%d\n",j+1);rnrnrnrnint main()rnMGraph G;rn void CreateMGraph(MGraph *G);rnrn rnvoid Floyd(MGraph *G);rn rn CreateMGraph(&G);rnrnrn rn Floyd(&G);rn return 0;rn[/code]rn下面是我运行的结果:rnrn[quote]输入顶点数和边数:rn5,7rn输入图的顶点rnarn输入图的顶点rnbrn输入图的顶点rncrn输入图的顶点rndrn输入图的顶点rnern通路通路输入边(vi,vj)上的下标i,下标j和权w:rna,b,10rn输入边(vi,vj)上的下标i,下标j和权w:rnb,c,10rn输入边(vi,vj)上的下标i,下标j和权w:rnc,d,10rn输入边(vi,vj)上的下标i,下标j和权w:rnd,e,10rnPress any key to continuern[/quote]rn我数据都没输完,程序就出现未知错误结束了,rn求大佬帮忙把程序给我改改,把正确的程序上传下,能按预期结果运行就行
求大佬帮助一下
我写了一个小游戏把它放入框架后无法判断正确值了,能帮我看看问题出在哪了吗? package two; import java.awt.event.ActionEvent; import java.awt.event.ActionListener; import javax.swing.JButton; import javax.swing.JFrame; import javax.swing.JL...
解释:为什么scanf被跳过或不执行
作为初学者(对!就是我!一直排这个错!快被整毁了!),可能会经常莫名遇到“为啥我的第二个scanf()函数自动跳过,不等待我输入就自己执行了?”的问题,或者会遇到“为啥在我输入数据和回车之后程序没有反应?”,以下是浅薄的解释: 问题一:“为啥我的第二个scanf( )函数自动跳过,不等待我输入就自己执行了?” 一个很简单的例子: #include &amp;amp;amp;lt;stdio.h&amp;amp;amp;gt...
Why?? 第二次的scanf()不执行
作为初学者(对!就是我!一直排这个错!快被整毁了!),可能会经常莫名遇到“为啥我的第二个scanf()函数自动跳过,不等待我输入就自己执行了?”的问题,或者会遇到“为啥在我输入数据和回车之后程序没有反应?”,以下是浅薄的解释: 问题一:“为啥我的第二个scanf( )函数自动跳过,不等待我输入就自己执行了?” 一个很简单的例子: #include &amp;amp;amp;amp;lt;stdio.h&amp;amp;amp;amp;gt; /试图两次利用sc...
指针问题,求大佬帮助!!~
[code=c]rn#include rn#define N 3rnrnrnint ScoreSort(int *score,int *pid) //按成绩由低到高排序 rnrn int i,j,t,s;rn rn for (i=0;i*(score+j+1))rn rn t=*(score+j);rn *(score+j)=*(score+1+j);rn *(score+1+j)=t; rn rn s=*(pid+j);rn *(pid+j)=*(pid+1+j);rn *(pid+1+j)=s;rn rn rn rn rn rn rnrnrnrnrnint ScoreCalculate(int *score,int *max,int *min,int *aver) //计算最高成绩、最低成绩及平均成绩 rnrn int total=0; rn int i;rn rn for(i=0;i*max)rn *max=*(score+i);rnrn rn for(i=0;i
萌新求大佬帮助
描述rnrn有一个长度为n的整数序列。请写一个程序,把序列中的最小值与第一个数交换,最大值与最后一个数交换。输出转换好的序列。rnrn输入rnrn输入包括两行。 rnrn第一行为正整数n(1≤n≤10)。 rn第二行为n个整数组成的序列。rnrnrnrn输出rnrn输出转换好的序列。数据之间用空格隔开。rnrn样例输入rn5rn2 1 5 4 3rnrn样例输出rnrn1 2 3 4 5rn在下的代码rn#include rnint main()rnrn int n,a,b,c,d,e,f,min,max,i;rn int str[11];rn while(scanf("%d",&n)!=EOF)rn rn for(i=0;imax)rn rn max=str[i];rn b=i;rn rn rn c=str[0];rn d=str[n-1];rn str[0]=min;rn str[n-1]=max;rn str[a]=c;rn str[b]=d;rn for(i=0;i
大佬们求帮助啊
pta上做的老师布置的一道题,总是有俩测试点不过,还不知道是怎么不对,,我试过我能想到的所有情况,都是对的。。。。rn题目:就是一个大整数求和的题,定义一个大整数类,重载+运算符什么的rn[img=https://img-bbs.csdn.net/upload/201804/29/1525001688_893572.png][/img]rnrn下面是我的完整代码 真心不知道那个地方不对。。ππrn[img=https://forum.csdn.net/PointForum/ui/scripts/csdn/Plugin/003/onion/1.gif][/img]rn=============================================================rn#include rn#include rn#include rn#includern#includernusing namespace std;rnrnrnclass BigIntrn char num[200];rn friend istream& operator>>(istream &input,const BigInt &bi);rn friend ostream& operator<<(ostream &output,const BigInt &bi);rnpublic:rn BigInt()memset(num,'a',200);rn BigInt operator + (const BigInt N)rn rn BigInt temp;rn int a[200]=0;rn int l1=strlen(N.num),l2=strlen(num);rn int l=l1-1;rn int sum=0;rn for(int i=0;i9)rn sum=a[i]/10;rn a[i]=a[i]%10;rn rn rn int j=0;rn l=1+max(l1,l2);rn if(a[l-1])rn for(int i=l-1;i>=0;i--,j++)rn temp.num[j]=a[i]+'0';rn temp.num[l]='\0';rn rn elsern j=0;rn for(int i=l-2;i>=0;i--,j++)rn temp.num[j]=a[i]+'0';rn temp.num[l-1]='\0';rn rn return temp;rn rn friend ostream& operator<<(ostream& out,const BigInt& N)rn rn int i=0;rn while(1)rn if(N.num[i]!='0') rn break;rn rn i++;rn rn if(N.num[i]=='\0') rn out<<"0";rn return out;rn rn while(N.num[i]!='\0')rn rn out<>(istream& in,BigInt& N)rn rn in>>N.num;rn return in;rn rn; rnint main()rn while(1)rn BigInt a, b, c;rn cin>>a>>b;rn c=a+b;rn cout<
我为什么图形界面调不出来,求大佬帮助
import java.awt.*;rnimport javax.swing.*;rnrnpublic class TankTest extends JFrame rn Mypanel mp=null;rn public static void main(String[] args) rn TankTest tank=new TankTest();rn rn public TankTest() rn rnrn this.setSize(400, 300);rn this.setVisible(true);rn this.setTitle("坦克");rn this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);rn mp=new Mypanel();rn this.add(mp);rn rn rn rnclass Mypanel extends JPanelrn Hero hero=null;rn public Mypanel() rn hero=new Hero(10, 10);rnrn rn public void print(Graphics g) rn super.paint(g);rn g.fillRect(0, 0, 400,300);rn this.drawtank(hero.getX(), hero.getY(), g, 0, 0);rnrn rn public void drawtank(int x,int y,Graphics g,int direction,int type) rn switch(type) rn case 0:rn g.setColor(Color.blue);rn break;rn case 1:rn g.setColor(Color.green);rn break;rn rn switch(direction) rn case 0:rn g.fillRect(x, y, 5, 30);rn g.fillRect(x+15,y, 5, 30);rn g.fillRect(x+5, y+5, 10, 20);rn g.fillOval(x+5, y+15, 10, 10);rn g.drawLine(x+10, y+15, x+10, y+15);rn break;rn case 1:rn rn rn rn rn rnclass Tanksrn int x=50;rn int y=50;rn public Tanks(int x,int y) rn this.x=x;rn this.y=y;rn rn public int getX() rn return x;rn rn public void setX(int x) rn this.x = x;rn rn public int getY() rn return y;rn rn public void setY(int y) rn this.y = y;rn rnclass Hero extends Tanksrn public Hero(int x,int y) rn super(x,y);rn [img=https://img-bbs.csdn.net/upload/201903/30/1553935038_759586.png][/img]rnrn
求回答!addEventListener为什么不执行?
我写了几个触摸事件监听但是不执行rn[code=javascript]rnfunction touch_audio()rn var touch = document.getElementById('touch_record');rn touch.addEventListener('touchstart', rn function()setTimeout("RecordAudio()",100);,false); rn touch.addEventListener('touchend',endRecord,false);rn rn rn[/code]rn我用onload之后就能执行了为什么?而且我发现onload中同时放几个函数后面的那个函数就执行不了,我已经用分号隔开了
循环为什么不执行呀,谢谢帮助
s1=0为什么循环不执行下去,直接跳到到数第五行了?rnrn s1:=0;rn s2:=0;rn sall:=0;rn y:=0;rn for y:=0 to Image1.Picture.Height-1 dorn beginrn showmessage(inttostr(y));rn for x:=0 to Image1.Picture.Height-1 dorn beginrn showmessage('rgbpoint1[x,y].r'+inttostr(rgbpoint1[x,y].r));rn if rgbpoint1[x,y].r=248 thenrn beginrn showmessage('s='+inttostr(s1));rn**** if s1=0 thenrn beginrn s1:=x;rn sall:=sall+1;rn endrn elsern s2:=x;rn endrn elsern beginrn if not(s1=0) and not(s2=0) and (sall>3) thenrn beginrn for i:=s1 to s2 dorn rgbpoint1[i,y].r:=0;rn endrn elsern beginrn s1:=0;rn s2:=0;rn sall:=0;rn end;rn end;rn s1:=0;rn s2:=0;rn sall:=0;rn end;rn end;
tp5数据迁移问题求帮助,谢谢大佬
我用的thinkphp安装完topthink后可以调出think命令但是无法建立数据迁移类文件,说找不到dev咋解决啊[img=https://forum.csdn.net/PointForum/ui/scripts/csdn/Plugin/003/monkey/0.gif][/img]
新手求C#大佬帮助,编码问题
[code=csharp]public static string Utf8_To_Ansi(string strSrc)rn rn byte[] buffer1 = Encoding.Default.GetBytes(strSrc);rn byte[] buffer2 = Encoding.Convert(Encoding.UTF8, Encoding.Default, buffer1, 0, buffer1.Length);rn string strBuffer = Encoding.Default.GetString(buffer2, 0, buffer2.Length);rn return strBuffer;rn [/code]rnrn这是我写的UTF8到Ansi编码,可是转化出来的和易语言的 [color=#FF0000]编码_Utf8到Ansi (到字节集 (Str))[/color] 转化出来的一样!rn求大佬解答如何使用C#来实现 易语言中的这两段代码哇!十分感谢rnrn [color=#FF0000]编码_Utf8到Ansi (到字节集 (Str))[/color] rn [color=#FF0000]编码_utf8到gb2312 (到字节集 (Str))[/color] rn
Js循环json数组 求大佬帮助
rn "obj": "\"cust_info\":[\"CUST_NAME_FULL\":\"李莉\"],\"cycle\":[\"0\"],\"error\":\"0\",\"countByHour_mx\":\t[\"SYLX\":\"小灵通市话详单\",\"THSC\":\"16\",\"YSJE\":\"0.10\",\"BJQY\":\"油城通被叫号段:13\",\"HSSJ\":\"20170821102550\",\"JFJE\":\"0.10\",\"BJHM\":\"13009907707\",\"JFCS\":\"1\",\"YHJE\":\"0.00\",\"SYLX\":\"小灵通市话详单\",\"THSC\":\"72\",\"YSJE\":\"0.20\",\"BJQY\":\"油城通被叫号段:13\",\"HSSJ\":\"20170821150525\",\"JFJE\":\"0.20\",\"BJHM\":\"13009907707\",\"JFCS\":\"2\",\"YHJE\":\"0.00\",\"SYLX\":\"小灵通市话详单\",\"THSC\":\"87\",\"YSJE\":\"0.20\",\"BJQY\":\"油城通被叫号段:13\",\"HSSJ\":\"20170822104713\",\"JFJE\":\"0.20\",\"BJHM\":\"13009907707\",\"JFCS\":\"2\",\"YHJE\":\"0.00\",\"SYLX\":\"小灵通市话详单\",\"THSC\":\"20\",\"YSJE\":\"0.10\",\"BJQY\":\"油城通被叫号段:13\",\"HSSJ\":\"20170822105901\",\"JFJE\":\"0.10\",\"BJHM\":\"13009907707\",\"JFCS\":\"1\",\"YHJE\":\"0.00\",\"SYLX\":\"小灵通市话详单\",\"THSC\":\"75\",\"YSJE\":\"0.20\",\"BJQY\":\"油城通被叫号段:13\",\"HSSJ\":\"20170822133935\",\"JFJE\":\"0.20\",\"BJHM\":\"13009907707\",\"JFCS\":\"2\",\"YHJE\":\"0.00\",,\"SYLX\":\"小灵通市话详单\",\"THSC\":\"45\",\"YSJE\":\"0.10\",\"BJQY\":\"油城通被叫号段:13\",\"HSSJ\":\"20170823175811\",\"JFJE\":\"0.10\",\"BJHM\":\"13009907707\",\"JFCS\":\"1\",\"YHJE\":\"0.00\",\"SYLX\":\"小灵通市话详单\",\"THSC\":\"163\",\"YSJE\":\"0.30\",\"BJQY\":\"油城通被叫号段:13\",\"HSSJ\":\"20170820153942\",\"JFJE\":\"0.30\",\"BJHM\":\"13q009907707\",\"JFCS\":\"3\",\"YHJE\":\"0.00\"],\"error_message\":\"\",\"countByHour_hj\":[\"SYLX\":\"48\",\"THSC\":\"3719\",\"YSJE\":\"9.10\",\"HDZS\":\"48\",\"JFJE\":\"9.10\",\"JFCS\":\"91\",\"YHJE\":\"0.00\"]"rnrnrn这个是Json 我想把这个数组循环出来
数组指针释放内存问题,求大佬帮助
求大佬解答以下问题rn[code=c]rnint _tmain(int argc, _TCHAR* argv[])rnrn rn int (*b)[3];//定义数组指针,相当于定义一个二维数组,行数不确定但列数是三rn b=(int (*)[3])malloc(sizeof(int *)*3);//为数组指针申请三行内存,相当于b[3][3]rn for(int i=0;i<2;++i)rn b[i][0]=234;//数组指针可以当做二维数组用,目前i<2不越界,但i<3好像就越界了,为什么?rn for(int i=0;i<2;++i)rn printf("%d\n",b[i][0]);rn free(b);//释放内存出现了问题,求解答rn return 0;rnrn[/code]rn如果以上我标注的有什么不对也请大佬指出
求数据库大佬的帮助
项目要求rn1.画出系统E-R图。(要求至少6个实体,每个实体至少3个属性)rn2.根据E-R图设计关系模式,并对关系模式进行规范化。也可以根据需要设计某些视图。每个关系模式要列出详细的表结构(表名、列名、列数据类型、列约束要求、列的描述等)。(表结构列出一个即可)rn3.创建数据库和表,如果需要,请创建相应的视图和索引。也可以创建数据库用户或角色。(SQL语句至少包含创建表、创建视图、创建索引)rn4.根据功能需求,模拟用户对数据库进行操作,写出相应的增删改查SQL语句。rn(SQL语句至少包含10个知识点,如:单表查询、分组查询、排序查询、条件查询、子查询、多表连接查询、添加数据、修改数据、删除数据、查询视图等)rn5.模拟数据库后台管理员,创建数据库用户及角色,对数据库用户/角色进行授权、收权等。rnrn[color=#FF0000]急求啊大佬们!!![/color]
C语言基础疑问 代码最后的scanf为什么不执行?
这段代码是一个叫simon的游戏,就是输出任意数码 然后消失 然后请用户输入rn但是很奇怪编译执行之后,最后一句printf执行了但是scanf却不执行 为什么rn编译器是devc++rn// a simple simon gamern#include rn#include rn#include rn#include rn#include rnint main(void)rnrn char another_game='Y';rn const unsigned delay=1;rn bool answer=true;rn unsigned tries=0;rn unsigned digits=0;rn time_t seed=0;rn time_t wait_start=0;rn unsigned number=0;rn rn printf("To play a Simple Simon,watch the screen for a sequence of digits.");rn printf("\nWatch carefully, as the digits are only played for %u second%s.",delay, delay==1?"":"s");rn printf("\nThe computer will remove them, then prompt you to enter the same sequence.");rn printf("\nWhen you do, you must put space in your digits.");rn printf("\nGood luck! Press enter to play.\n");rn rn dorn rn answer=true;rn tries=0;rn digits=2;rn rn while(answer)rn rn ++tries;rn rn srand(time(&seed));//without & the program goes wrong rn for(unsigned i=1;i<=digits;++i)rn printf("%d ",rand()%10);//output the numberrn rn wait_start=clock();rn for(;clock()-wait_start
求各位大佬帮我解惑while和scanf()的逻辑!!!!!!!!!!!!!!!!!!!!!!!!!
因为是自学的萌新菜鸡,所以.并不理解这个while和scanf()的逻辑.....rnwhile判断结果如果为真则执行内的内容对吧?rn为什么while执行到printf();时就开始死循环???rnrn按我的理解,while应该继续执行接下来的scanf();rn如果它执行的话,用户就可以输入新值给choice变量;rn然后执行到大括号结尾,依次循环就结束;rn然后while函数就继续判断choice变量的值(这时候就应该是上次循环时由scanf()赋的新值);rnrn这样的逻辑才对啊,为什么while还没等待执行后面的scanf()就开始死循环了????????rnrn[img=https://img-bbs.csdn.net/upload/201805/28/1527510500_35159.png][/img]
这个循环为什么执行到printf 后面的scanf部分不执行了?
#includern#includernint main(void)rnrn rn float number_f;rn float number_s;rn char operation;rn char choice_1;rn dorn rn printf("Please Edit the chaculation\n");rn scanf("%1f%c%1f",&number_f,&operation,&number_s);rn switch(operation)rn rn case '+':rn printf("You answer is %1f\n",number_f+number_s);rn break;rn case '-':rn printf("You answer is %1f\n ",number_f-number_s);rn break;rn case '/':rn if(number_s==0)rn printf("the number s you put in is wrong\n");rn elsern printf("You answer is %1f \n",number_f/number_s);rn break;rn case '*':rn printf("You answer is %1f\n" ,number_f*number_s);rn break;rn rn printf("DO you want anymore\n");rn printf("Please Edit Y/N\n");rn scanf("%c",&choice_1);rn rn rn while(toupper(choice_1)=='y');rn rn return 0;rn
程序遇到scanf直接跳过不执行这是为什么
苦逼自学者,刚开始学C,不太明白下面这段代码为什么不执行scanf函数,请高手指点一下。就算程序逻辑有问题,程序遇到scanf也应该让我输入一下再出错也好啊,但是它直接跳过不执行。泪奔了。rn[code=c]rn//计算面积或体积rn#include rnrnint main()rnrn char choose = 'c'; //选择计算方式,提供a、b两种选项rnrn float a = 5.0f; //长rn float b = 6.0f; //宽rn float h = 7.0f; //高rnrn int on = 1; //循环开关,初始为打开rn char yesorno = 'n'; //是否再次计算,初始为关闭rn while (on)rn rn printf("请选择\n");rn printf("a>计算面积\n");rn printf("b>计算体积\n->");rnrn scanf("%c", &choose);rn switch (choose)rn rn case 'a':rn case 'A':rn printf("%f\n", a*b);rn break;rn case 'b':rn case 'B':rn printf("%f\n", a*b*h);rn break;rn default:rn printf("不能识别你的输入!\n");rn continue;rn rn printf("是否需要再次计算(y/n):");rnrn scanf("%c", &yesorno); //就是这个输入,始终不执行。不止为什么?rn if (yesorno == 'N' ||rn yesorno == 'n')rn on = 0; //选择否,循环开关关闭rn else if (yesorno == 'y' ||rn yesorno == 'Y')rn on = 1; //选择是,循环开关继续开启rn elsern on = 0; //乱输入则关闭循环,不再执行计算rn rn return 0;rn[/code]
为什么不执行?
select a.行业 ,b.户数 from 行业顺序 a left join (select YGZ_MC , count(YGZ_MC) as 户数 from temp一般人 where datediff(day, GZZSYXQ ,'2013-8-1') >=0 and datediff(day, HZDJRQ ,'2013-8-1') >0 rn group by YGZ_MC ) b on a.行业= b.YGZ_MC rnrnrn行业顺序里面存储 A B C Drn如果 where datediff(day, GZZSYXQ ,'2013-8-1') >=0   光有一个条件的话,正常应该输出为rnA 10rnB 11rnC 100rnD 6rnrn但是现在  where datediff(day, GZZSYXQ ,'2013-8-1') >=0 and datediff(day, HZDJRQ ,'2013-8-1') >0  跟着两个条件 执行起来  跟行业顺序表就无关 程序结果就变为:rnC 10rnB 12rnA 12rnD 12rnrn请问怎么回事
为什么不执行
[code=Perl]tash.shrn如下 rn*/6 * * * * /cygdrive/d/2.sh>>/cygdrive/d/log.log[/code]rnrn当rnrncrontab tash.sh 添加任务后,为什么不执行,rn但是 rn单独执行 /cygdrive/d/2.sh>>/cygdrive/d/log.log 是可以写进东西到log里面。rn求高手
CustomValidator1_ServerValidate为什么不执行?为什么。。。
<%@ Page Language="C#" %>rnrnrnrn rnrnrnrn Untitled Pagernrnrn rn rn rn rn rn rn rn rn rnrnrnrn郁闷,真不知道哪里有毛病。rn无Web.Config,没有引入任何JS,就这一个页面。rnonservervalidate="CustomValidator1_ServerValidate"大小写并没关系的,运行无错。rnrn为什么???为什么???为什么???为什么???
c语言新手第二个scanf不执行的问题
[code=C/C++]rn#include "stdio.h"rn#include "stdlib.h"rnrn//float tol_traveled(float beg_od, float end_od);rnfloat reimbursment(float beg_od, float end_od);rnrnint main()rn float beg_od, end_od;rn printf("MILEAGE REIMBURSEMENT CALCULATOR\n");rn printf("Enter beginning odometer reading=>");rn scanf("&f", beg_od);rn printf("\n");rn printf("Enter ending odometer reading=>");rn scanf("&f", end_od);rn printf("\n");rn printf("You traveled %.1f miles. At $0.35 per mile,\n", beg_od - end_od);rn printf("your reimbursment is %.2f.\n", reimbursment(beg_od, end_od));rn system("PAUSE");rn return 0;rnrn/*float tol_traveled(float beg_od, float end_od)rn return end_od - beg_od;rn*/rnfloat reimbursment(float beg_od, float end_od)rn return (beg_od - end_od) * 0.35;rnrn[/code]rn运行到第二个scanf的时候直接跳过了然后最后输出的都是-0.0 -0.00。。。。。求解
~scanf是什么意思,为什么scanf前加~
scanf函数返回成功读入的数据项数,读入数据时遇到了“文件结束”则返回EOF。scanf(&quot;%d %d&quot;,&amp;amp;a,&amp;amp;b);    函数返回值为int型。如果a和b都被成功读入,那么scanf的返回值就是2;如果只有a被成功读入,返回值为1;如果a和b都未被成功读入,返回值为0;如果遇到错误或遇到end of file,返回值为EOF。end of file为Ctrl+z 或者Ctr...
不知道为什么 求大佬解答而命名、
rnc语言 求解答 ,答案可以出现 但是会死机。。谢谢了rnrnrnrn输入多个字符串,将其中其中包含“an”的字串的字符串输出。rn#include "stdio.h"rn#define N 3rn#define M 100rnint main(void)rnrn char sz[N][M];//二维字符数组,可以存放10个字符串rn rn for(int i=0;i
求第三个SQL语句
一个表结构如下:rnname jg zlrn米 200 买rn衣 300 买rn裤 100 买rn米 150 卖rn裤 50 卖rn米 200 买rn...rn要求查询结果如下:rn米 250rn裤 50rnrn即按name分类,和zl的进出,合计现在还有多少数量并且数量要小于280rn谢谢大家!
求问大佬 ,我的程序为什么运行错误
求问大佬 ,我的程序为什么运行错误## 调试显示是 end-&amp;gt;next=head ; head-&amp;gt;before=end ;这两步出问题了,求大佬解释 #include&amp;lt;iostream&amp;gt; #include&amp;lt;fstream&amp;gt; #include&amp;lt;string&amp;gt; using namespace std; const int MAX=100000; str...
求大佬看看为什么结果是wrong answer
问题如下:rn[img=https://img-bbs.csdn.net/upload/201805/03/1525345373_848406.png][/img]rn我的代码:rn#includernint main(void)rnrn int year,month,day,leap;rn char op;rn while(scanf("%d%c%d",&year,&op,&month)!=EOF)rn rn int tab[2][13]=rn 0,31,28,31,30,31,30,31,31,30,31,30,31,rn 0,31,29,31,30,31,30,31,31,30,31,30,31;rn leap=(year%4==0&&year%100!=0||year%4==0);rn day=tab[leap][month];rn printf("%d\n",day);rn rnrn return 0;rn rnrnrnrnrnrn学校的oj系统返回的结果是Wrong Answer。求大佬指出错误,谢谢。
新人求问,为什么这个AJAX不执行?
[img=https://img-bbs.csdn.net/upload/201408/28/1409216741_875543.jpg][/img]rn新人求问,为什么这个AJAX不执行。
JS代码为什么不执行!!求大神解释!
rnrn Hello A!rn rnrnrnrn不显示js的输出 为什么。。。。
为什么会跳过scanf?
#includernrnvoid main()rnrn int x;rn while(1)rn rn rn printf("Please input a integer:\n");rn scanf("%d",&x);rn if(x>=1000 || x<=0)rn printf("The number you input is invalid.\n");rn elsern if(x>=100)rn printf("The number has 3 digits.\n");rn else if(x>=10)rn printf("The number has 2 digits.\n");rn elsern printf("The number has 1 digit.\n");rnrn rnrn源代码如上,当输入整数时反应正常, 但当输入小数(如3.4),就会陷入快速死循环, 好像跳过了scanf语句. 但把代码改成如下时, 反应正常. 不知是为什么, 我刚学编程,请大虾指导一下.rn#includernrnvoid main()rnrn float x;rn while(1)rn rn rn printf("Please input a integer:\n");rn scanf("%f",&x);rn if(x>=1000 || x<=0)rn printf("The number you input is invalid.\n");rn elsern if(x>=100)rn printf("The number has 3 digits.\n");rn else if(x>=10)rn printf("The number has 2 digits.\n");rn elsern printf("The number has 1 digit.\n");rnrn rnrn
求帮助。求帮助
接收一串字符串,格式像这样的(key=value|key=value||||)key 代表Field的name,value代表set进Object中的值,将他装换成一个Object对象,调用setter方法为其赋值,我用下面的方法调用method.invoke(obj, obj..);测试的时候用的其中一个Bean类Student。Student里面有很多Filed,怎么把value(String)转换invoke方法的第2个参数的类型啊,是像我下面那样一个一个判断吗,还是有别的方法啊。大家帮帮忙=。= 谢谢……^^rnrn[code=java]rnpackage com.ytbysj.util;rnrnimport java.lang.reflect.InvocationTargetException;rnimport java.lang.reflect.Method;rnimport java.util.HashMap;rnimport java.util.Iterator;rnimport java.util.Map;rnimport java.util.StringTokenizer;rnimport java.util.Map.Entry;rnrnimport com.ytbysj.beans.Student;rnimport com.ytbysj.exception.FooException;rnrn/**rn * Message Handler类rn * @author haniyaseyorn *rn */rnpublic class MessageHandler rn rn /**rn * 将message转换成Map对象rn * @param message like:key=value|key=value||||rn * @return 通过message转换成的MAP key=valuern */ rn public static Map messageHandler(String message)rn //如果message=null则抛出异常rn if(message == null) throw new FooException("MessageHandler messageHandler(String message) message=null");rn //简单判断message的格式rn if(message.indexOf("|") == -1) throw new FooException("MessageHandler messageHandler(String message) message do not contains \"|\"");rn if(message.indexOf("=") == -1) throw new FooException("MessageHandler messageHandler(String message) message do not contains \"=\"");rn rn //定义Map对象rn Map map = new HashMap();rn rn //定义StringTokenizer对象 并指定"|"为分隔符rn StringTokenizer stken = new StringTokenizer(message, "|");rn rn /*rn * 循环StringTokenizer中的对象 并复制到Map中rn */rn while (stken.hasMoreTokens()) rn String[] temp = stken.nextToken().split("=");rn map.put(temp[0], temp[1]);rn rn return map;rn rn rn /**rn * 根据给定的message和Class构造一个?对象rn * @param message like:key=value|key=value||||||rn * @param clazz ?的Class对象rn * @return clazz.newInstance()rn */rn public static Object getObject(String message, Class clazz)rn //获取Maprn Map map = messageHandler(message);rn //判断Map是否为空rn if(map.isEmpty()) throw new FooException("MessageHandler getObject(String message, Class clazz) map is empty");rn rn Object obj = null;rn try rn obj = clazz.newInstance();rn Iterator> ite = map.entrySet().iterator();rn while(ite.hasNext())rn Entry entry = ite.next();rn //取出每一个key valuern String item_name = entry.getKey().trim();rn String value = entry.getValue().trim();rn //构造方法名rn String methodName = "set" + String.valueOf(item_name.charAt(0)).toUpperCase() + item_name.substring(1);rn //获取Field的类型rn Class type = clazz.getDeclaredField(item_name).getType();rnSystem.out.println(methodName + "," + value + "," +type.getName());rn //获取Method对象rn Method method = clazz.getDeclaredMethod(methodName, type);rn rn //判断Field类型rn if(type == value.getClass())rn method.invoke(obj, value);rn else if(type == int.class)rn method.invoke(obj, Integer.parseInt(value));rn //..如果在这里接着判断有很多不方便的地方-。-rn rn catch (InstantiationException e) rn e.printStackTrace();rn catch (IllegalAccessException e) rn e.printStackTrace();rn catch (SecurityException e) rn e.printStackTrace();rn catch (NoSuchFieldException e) rn e.printStackTrace();rn catch (NoSuchMethodException e) rn e.printStackTrace();rn catch (IllegalArgumentException e) rn e.printStackTrace();rn catch (InvocationTargetException e) rn e.printStackTrace();rn rn return obj;rn rn rn public static void main(String[] args) rn String message = "student_no=0810024103|password= |username=叶婷|sex=男" +rn "|moblie=12296736137|native_place=重庆|college= |tie=软件工程|stuclass=09级2班|limits=3";rn System.out.println(getObject(message,Student.class));rn rnrn[/code]
求帮助!!!求帮助!!!
小弟用的是BCB 6.0,最近要开发SFTP,不知道有没 sftp的控件。小弟刚用bcb.忘大家说的详细点。谢谢!!rn
scanf为什么执行慢
下面函数从文件中读取数字,使用scanf("",&num)完全可以,为什么使用下面的读取提高了程序执行速度rn[code=C/C++]rninline void read(int &num)rnrn char in;rn in =getchar();rn while(in <'0'|| in > '9')rn in =getchar();rn num = in -'0';rn while(in =getchar(),in >='0'&&in <='9')rn num *=10,num +=in -'0';rnrnrn[/code]
scanf为什么错?
#include rnrnint gongyue(int x,int y)rnrn int i;rn i=x>y?y:x;rn for(;i>0;i--)rn if(x%i==0&&y%i==0)rn printf("%d",i);rn return i;rnrnint gongbei(int x,int y)rnrn int i;rn i=x>y?y:x;rn for(;;i++)rn if(i%x==0&&i%y==0)rn printf("%d",i);rn return i;rnrnrnint main ()rnrn int j,a,b,n;rn scanf("%d",&n);rn for(j=0;j
[ 此处scanf()为什么失效? ]
这是一段自己写的猜数字的游戏。rnrn有两处scanf(),好像不起作用,只好注释掉,然后用bioskey(1)来代替。rn请大侠来帮着分析一下原因。rn谢谢!rnrn代码如下:rnrnrnrnrnrnrn#include rn#include rn#include rn#include rnrnlong int getNum()rnrn randomize();rn return random(100);rnrnrnshort int userGuess(long int num)rnrn long int value;rn puts("\nYou guess(0 to 100): ");rn scanf("%d", &value);rn return (value - num);rnrnrnrnint main(void)rn rn long int randNum;rn short int exit = 0, again = 1;rn int counter;rn char choice;rn short int userGuessValue;rnrn while(!exit)rn rn randNum = getNum();rn printf("\n** Ok now ! [%d] ***\n", randNum);rn again = 1;rn while(again)rn rn userGuessValue = userGuess(randNum);rn if(userGuessValue == 0)rn rn again = 0;rn printf("Congratulations! Your guess %d is right!\n", randNum);rn puts("Guess again?(Y/N) ");rn //scanf("%c", &choice); 第一处rn while(1)rn rn if(bioskey(1))rn rn choice = bioskey(0);rn break;rn rn rn if(choice == 'Y' || choice == 'y')rn exit = 0;rn elsern exit = 1;rn rn elsern rn if(userGuessValue < 0)rn printf("Your guess is smaller than it.\n");rn elsern printf("Your guess is bigger than it.\n");rnrn printf("Sorry, your guess doesn't match, another try?(Y/N)");rn //scanf("%c", &choice); 第二处rn while(1)rn rn if(bioskey(1))rn rn choice = bioskey(0);rn break;rn rn rnrn if(choice == 'Y' || choice == 'y')rn again = 1;rn elsern again = 0;rn rn rn rnrn getch();rn return;rn
相关热词 c#检测非法字符 c#双屏截图 c#中怎么关闭线程 c# 显示服务器上的图片 api嵌入窗口 c# c# 控制网页 c# encrypt c#微信网页版登录 c# login 居中 c# 考试软件

相似问题

1
scanf输入数后输出的数为什么不一样?
3
为什么while((a=scanf("%d",&i))!=-1)这个循环永远不会退出?
0
C语言问题:约瑟夫环,程序出了点毛病,求大佬帮助
2
差不多的代码耗时相差两倍,为什么?求大佬解答?
2
C语言基础疑问 代码最后的scanf为什么不执行?
3
为什么c语言scanf()函数同时输入字符型和整型数据,输入数据错误?
0
用Xcode编译,有scanf的代码,二次执行后无法正常输入?
0
求大佬帮助,我不知道我是不是有那种情况没考虑到,到OJ上提交显示答案错误(本人c语言菜鸟)?
1
求大佬解决一下为什么调用函数函数后输出为地址,而不是变量的值呢?
3
为什么第一个scanf里%f间加逗号输入时就会跳过第二个scanf,而去掉逗号就不会了??
2
有两个if语句,scanf就不执行,什么情况?
5
C语言为什么两个gets_s换成scanf_s就会出现问题?
0
在devcpp运行不能重复输出并集求求大佬们看看。
1
希望大神帮我理解下scanf()函数 和 EOF
0
纯C贪吃蛇运行有时会卡死,求大佬帮助?
1
大佬们看看程序有问题吗 为什么算带小数的数时最后几位有时不正确?
0
hdu 4179 Difficult Routes这个问题中为什么我的代码总超时,请问,求大佬帮助,感激不尽!
1
大佬们看看两个代码的区别 我感觉算法都是对的 为什么第一个不行 第二个可以?
1
Python如何实现C语言的scanf()语法功能
2
请问为什么scanf同时输入%d%c时无法输出?