c语言为什么while运行到一半就不运行了

c语言为什么while运行到一半就不运行了,第1张

几个问题:

1、电话和密码用 long int长度可能不够,容易越界出错,建议用char[],长度自定。

2、while(b!=c)里面,b、c显然是char[],直接 b!=c没有意义,比较的是地址而不是值,它们不会相等。应该用     strcmp(b, c)!=0;

3、stu[n+i]mima定义为long int, stu[n+i]mima = b只是赋b的地址到密码,而不是值。应该把密码先定义为char[], 然后通过 strcpy(stu[n+i]mima, b)赋值。

4、因为用到字符串函数,应该包括头文件 stringh。

最终代码如下:

#include <stringh>

typedef struct

{

        char num[50];

        char name[50];

        char sex[50];

        char classroom[50];

        char dormitory[50];

        char phone[20];

        char mima[20];

} Student;

Student stu[99];

while(sign!='n' && sign!='N')

        printf("请输入你的学号:\n");

        scanf("%s",stu[n+i]num);

        printf("请输入你的姓名\n");

        scanf("%s",stu[n+i]name);

        printf("性别:\n");

        scanf("%s",stu[n+i]sex);

        printf("请输入你的班级\n");

        scanf("%s",stu[n+i]classroom);

        printf("请输入你的宿舍地址\n");

        scanf("%s",stu[n+i]dormitory);

        printf("请输入你的电话号码:\n");

        scanf("%s",stu[n+i]phone);

        printf("请输入你的密码:\n");

        scanf("%s",stu[n+i]mima);

        printf("请再次输入你的密码:\n");

        scanf("%s",c);

        while(strcmp(b, c)!=0)

        {

                printf("密码输入不一致,请重新输入密码!\n");

                printf("请输入你的密码:\n");

                scanf("%s",b);

                printf("请再次输入你的密码:");

                scanf("%s",c);

        }

      strcpy(stu[n+i]mima, b);

      printf("是否继续输入(Y/N):\n");

      scanf("%s",&sign);

      i++;

}

c语言的语句结束标志是分号。在C语言中分号“;”用于结束一个语句,就如同平日常用的句号“。”作用一样。

C程序是由C语言写的,能完成特定功能的一套完整的指令。组成这些指令的基本元素,称为语句。一个C程序必须要有头文件、一个主程序,主程序必须要以‘{’开头,以‘}’结尾。

两者之间是语句文本。每行语句必须以‘;’分号结尾。注意,所有标点必须用英文标点,如果用中文标点的话,程序会报错。

程序中有时候会有双斜线‘//’,这是单行注释符,它的右边的语句仅仅起注释作用,不会被执行;

此外,还有多行注释符‘/’和‘/’,这两个符号中间的内容不会被执行。

扩展资料

C语言 while(表达式)后面是没有分号的,如果不小心加上分号,系统也不会出现编译错误,但是程序却会不停的执行空 *** 作,形成空循环体,无法执行“while(表达式);”后面的程序,得不到预计的效果。例如,在累加求和的程序中while循环加上分号产生错误。

在do…while循环语句中while后面是有分号的,与普通的语句一样,这个分号是用来结束语句的。如果遗漏了这个分号,程序不会通过编译进而产生错误。

因此,在用do…while循环语句时,不要忘记在while的后面加上分号,即使忘记了,编译器也会有所提示,而不会产生不可预见的错误。

注意:分号在do…while语句中代表一条语句的结束,并不代表循环体的结束。

a

=

0;

++a

<=

100

第一次while循环a=1所以总共执行100次

如果是a++

<=

100

则第一次a

=

0,执行101次了

systemoutprint();打印不换行

"\t"制表符,增加tab空格

systemoutprintln();

是打印换行就是说当a在同一行打印了九个之后就另起一行再打印

以上就是关于c语言为什么while运行到一半就不运行了全部的内容,包括:c语言为什么while运行到一半就不运行了、c语言什么符号代表不运行、java,while循环就执行了一次不执行等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/zz/9782130.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-01
下一篇 2023-05-01

发表评论

登录后才能评论

评论列表(0条)

保存