搜索
查看: 694|回复: 5
打印 上一主题 下一主题

各位同学,看看这哪里错了

[复制链接]
跳转到指定楼层
楼主
发表于 2014-4-6 12:29:31 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
5啊哈币
#include<stdio.h>
#include<string.h>
main()
{
char a[11],b[10],c[11],d[10];
    int i;
    a[14]="tanglulian";
    b[10]="130431312";
    printf("登陆\n");
    for(i=1;i;i++)
{   printf("请输入用户名:");
        scanf("%s",c);
     printf("请输入密码:");
        scanf("%s",d);
     if (strcmp(a[11],c[11])==0&&strcmp(b[10],d[10])==0)
  {
         printf("您已成功登陆\n");
            break;
  }
     else
   printf("用户名或密码无效\n");
}
}

沙发
发表于 2014-4-6 15:04:44 | 只看该作者
  1. a[14]="tanglulian";
复制代码

该句指给a的第15个元素赋值为"tanglulian",有两个错误:
a一共只有14个元素(a[0]-a[13]),没有第15个元素
a[n]是一个字符,而非字符串,不能赋给它一个字符串值
改成这样:
strcpy(a,"tanglulian");
strcpy这个函数负责把后面的一个字符串的值拷贝到前一个里
接下来一句也是同样的错误。

还有
  1. if (strcmp(a[11],c[11])==0&&strcmp(b[10],d[10])==0)
复制代码

应改为
  1. if (strcmp(a,c)==0&&strcmp(b,d)==0)
复制代码


记住C的字符串是当成字符数组(以\0结束)来处理的,不应使用=来赋值,
还有
  1. char a[10];
复制代码

这里字符串变量的名字叫a,不叫a[10],a[10]会被当作a的第11个值(实际上并不能使用a[10]的值)。

点评

谢谢了  发表于 2014-4-7 12:32
板凳
发表于 2014-4-6 21:10:57 | 只看该作者
981013 发表于 2014-4-6 15:04
该句指给a的第15个元素赋值为"tanglulian",有两个错误:
a一共只有14个元素(a[0]-a[13]),没有第15个 ...

他定义的a是char a[11];
地道点的写法是
char a[11] = "tanglulian";
而不是用函数

点评

谢谢了  发表于 2014-4-7 12:32
地板
 楼主| 发表于 2014-4-7 12:32:56 | 只看该作者
知道了,谢谢你们
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

广播台
特别关注
快速回复 返回顶部 返回列表