| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 748 人关注过本帖
标题:一个小问题,帮看下
只看楼主 加入收藏
小赵q1
Rank: 8Rank: 8
等 级:蝙蝠侠
威 望:4
帖 子:492
专家分:777
注 册:2011-8-26
结帖率:100%
收藏
已结贴  问题点数:20 回复次数:13 
一个小问题,帮看下
程序如下:
#include<stdio.h>
main()
{
int a,b,x;
char y[20];
printf("请输入选项\n");
scanf("%d",&x);
if(x==1)
{
 a=12;
 printf("%d\n",a);
}
if(x==2)
{
 b=20;
 printf("%d\n",b);
}
if(x==3)
{
 printf("请输入密码\n");
 scanf("%s",y);
 if(strcmp(y,"abcde")==0)
    x=1;
  else x=2;
}
}
最后那里如果输入密码正确那么就执行x==1那里的语句,如果不正确就执行x==2那里的语句,为什么我输入的正确不正确它都自动退出了呢?根本就没有执行那些语句,
如果要达到那样的效果该怎么改呢?


[ 本帖最后由 小赵q1 于 2011-12-20 11:47 编辑 ]
搜索更多相关主题的帖子: 输入密码 include 
2011-12-18 19:07
痞子_唐
Rank: 2
等 级:论坛游民
威 望:1
帖 子:10
专家分:35
注 册:2011-12-18
收藏
得分:5 
我感觉你这个写的有点乱,是不是这个意思,还有你定义的int型变量c有什么用?
#include<stdio.h>
#include<string.h>
int main()
{
    int a,b,x;
    char y[20];
    printf("请输入密码\n");
    scanf("%s",y);
    if(strcmp(y,"abcde")==0)
        x=1;
    else
        x=2;
    if(x==1)
    {
        a=12;
        printf("%d\n",a);
    }
    else if(x==2)
    {
        b=20;
        printf("%d\n",b);
    }
}
2011-12-18 20:01
有容就大
Rank: 16Rank: 16Rank: 16Rank: 16
来 自:东土大唐
等 级:版主
威 望:74
帖 子:9048
专家分:14309
注 册:2011-11-11
收藏
得分:6 
回复 楼主 小赵q1
输入密码后 ,程序比较赋值后结束,没实行跳转。我在你的基础上改了个,你试试。
#include<stdio.h>
main()
{
int a,b,x;
char y[20];
printf("请输入选项\n");
scanf("%d",&x);
loop1:if(x==1)
{
a=12;
printf("%d\n",a);
}
loop2:if(x==2)
{
b=20;
printf("%d\n",b);
}
if(x==3)
{
printf("请输入密码\n");
scanf("%s",y);
  if(strcmp(y,"abcde")==0)
  {
    x = 1;
    goto loop1;
  }
  else
  {
      x = 2;
      goto loop2;
  }
}
}
c变量定义后,就没出现过,你是不是忘记某一部分程序?

梅尚程荀
马谭杨奚







                                                       
2011-12-18 20:19
有容就大
Rank: 16Rank: 16Rank: 16Rank: 16
来 自:东土大唐
等 级:版主
威 望:74
帖 子:9048
专家分:14309
注 册:2011-11-11
收藏
得分:1 
回复 楼主 小赵q1
大多数人都不赞成使用goto 语句,楼主自己斟酌。

梅尚程荀
马谭杨奚







                                                       
2011-12-18 20:22
于祥
Rank: 13Rank: 13Rank: 13Rank: 13
等 级:蒙面侠
威 望:5
帖 子:1047
专家分:4132
注 册:2011-4-24
收藏
得分:1 
是二楼的那样吗?是的话,二楼的就不错

最基础的往往是你最容易忽略的!
2011-12-18 20:28
小赵q1
Rank: 8Rank: 8
等 级:蝙蝠侠
威 望:4
帖 子:492
专家分:777
注 册:2011-8-26
收藏
得分:0 
回复 2楼 痞子_唐
你的程序只能执行密码里面的东西;
我想在不输入密码的时候输入1和2也能执行对应的语句,在输入密码的时候执行里面判断后对应的语句。
2011-12-18 20:30
小赵q1
Rank: 8Rank: 8
等 级:蝙蝠侠
威 望:4
帖 子:492
专家分:777
注 册:2011-8-26
收藏
得分:0 
回复 4楼 有容就大
我也这样认为,不过,除了这个方法实在想不出别的办法了。唉
2011-12-18 20:33
痞子_唐
Rank: 2
等 级:论坛游民
威 望:1
帖 子:10
专家分:35
注 册:2011-12-18
收藏
得分:2 

小程序使用goto多少没关系,也别多用
如果代码超多的话再用goto那就不好了
2011-12-18 20:55
有容就大
Rank: 16Rank: 16Rank: 16Rank: 16
来 自:东土大唐
等 级:版主
威 望:74
帖 子:9048
专家分:14309
注 册:2011-11-11
收藏
得分:2 
回复 7楼 小赵q1
我想了个不用goto的,你参考下。
#include <stdio.h>
#include <stdlib.h>
int main(void)
{
    int a, b, Choice, flag;
    char str[12];
    printf("Please input the Choice :    ");
    scanf("%d", &Choice);
    while (flag)
    {
    switch (Choice)
    {
    case 1: printf("%d\n", a = 12); flag = 0;break;
    case 2: printf("%d\n", b = 20); flag = 0;break;
    case 3:
        {
            printf("Please input the password:    ");
            scanf("%s", str);
            if(strcmp(str, "abcde") == 0)
            {  
                 Choice = 1; flag = 1; break;
            }
            else
            {
                  Choice = 2; flag = 1; break;
            }

        }
    default : printf("May God bless you!\n"); flag = 0; break;
    }
    }
    return 0;
}

梅尚程荀
马谭杨奚







                                                       
2011-12-18 21:06
liuyang4952
Rank: 1
等 级:新手上路
帖 子:1
专家分:1
注 册:2011-12-15
收藏
得分:1 
回复 楼主 小赵q1
有几个问题,在if(x==2)那个语句后少一个花括号
而且y没有声明
2011-12-19 16:33
快速回复:一个小问题,帮看下
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.025542 second(s), 7 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved