题目:编一程序,能对多次输入的数进行判断,该数是否即是5的倍数又是7的倍数,如是输出"yes",不是输出"no",当输入-1则结束程序运行.#include "stdio.h"main(){int i,n;while (i!=-1)scanf("%d",&n);if(n/5==0&&n/7==0)printf("yes\n");else printf("no\n");}(当我运行的时候,好像进入了死循环,不知道是为什么?请帮我分析一下我到底哪里错了?写出正确答案,为什么进入死循环?谢谢!)

热心网友

#include "stdio.h"void main(){ int n=0; scanf("%d",&n); while (n != -1) {if(n%5==0 && n%7==0)//这里取模%,不是相除/printf("yes\n");else printf("no\n");scanf("%d",&n); }}以上程序运行正确,请放心使用.

热心网友

i的值啊...没有赋值唉跟我一样,常范很低级的错误哦呵呵

热心网友

看来不用多说了,大家意见一致

热心网友

程序这样写不好,建议单独写个判断函数~如:void f1(int n){//判断该数是否即是5的倍数又是7的倍数,//如是输出"yes",不是输出"no",当输入-1则结束程序运行while (n!=-1){if(n/5==0&&n/7==0)printf("yes\n");else printf("no\n");}}main(){int n;scanf("%d",&n);f1(n);}

热心网友

可以想一下程序刚开始就进入循环,循环内有没有给i赋值的相关语句没办法跳出当然是死循环了

热心网友

i没有赋值,默认i=0,那么i当然!=-1咯所以无限循环!

热心网友

i的默认值是0;自然进死循环了#include "stdio.h"main(){int n; scanf("%d",&n); while (n!=-1) { if(n%5==0&&n%7==0) printf("yes\n"); else printf("no\n"); scanf("%d",&n); }}判断5的倍数又是7的倍数用n%5==0&&n%7==0

热心网友

你的判断条件是i ,可是自始至终也没对i赋值,当然出问题了