c语言程序查错

#include <stdio.h>
void main()
{
int m,w,c;

for(m=0;m<30;m++)
for(w=0;w<25;w++)
for(c=30-m-w;c<=30;c--)
{
if(3*m+2*w+c==50)
printf("men:%d women:%d children:%d",m,w,c);
printf("\n");
}
}
编译无错无警告,连接出现两处错误
麻烦了解的帮忙改下谢谢
连接的问题没有了
题目:共30个人,50块钱,聚会,男的每人花3块钱,女2块,小孩1块,求人数各多少
m<30
w<25
是为了减少运算次数,也可以写作m<50/3 w<50/2

楼主的错误如下 :

第三个循环是错的,不能加,只需要两个循环就够了;
printf("\n"); 这个语句应该用{}包含在if语句中,否则由于无数的回车导致结果看不到的。

修改后的程序VC下运行通过:

#include <stdio.h>
void main()
{
int m,w,c;

for(m=0;m<30;m++)
for(w=0;w<25;w++)
{
c=30-m-w;
if(3*m+2*w+c==50)
{
printf("men:%d women:%d children:%d",m,w,c);
printf("\n");
}
}

}

运行结果如下:
men:0 women:20 children:10
men:1 women:18 children:11
men:2 women:16 children:12
men:3 women:14 children:13
men:4 women:12 children:14
men:5 women:10 children:15
men:6 women:8 children:16
men:7 women:6 children:17
men:8 women:4 children:18
men:9 women:2 children:19
men:10 women:0 children:20
Press any key to continue
温馨提示:内容为网友见解,仅供参考
第1个回答  2007-11-29
#include <stdio.h>
void main()
{
int m,w,c;

for(m=0;m<30;m++)
for(w=0;w<25;w++)
for(c=30-m-w;c<=30;c++)<--这里将"--"改成"++"
{
if(3*m+2*w+c==50)
printf("men:%d women:%d children:%d",m,w,c);
printf("\n");
}
}
第2个回答  2007-11-29
你写的最后一个FOR是死循环,(c=30-m-w;c<=30;c--)
因为C本身就小与30,所以一直一直减下去,,,减到负数..一直一直下去,,
我看你的题改了一下...你看对不对....
对果不对呢.我也没办法了..关键不知是什么题...

#include <stdio.h>
void main()
{
int m,w,c;

for(m=0;m<30;m++)
for(w=0;w<25;w++)
for(c=0;c<=30;c++)

if(3*m+2*w+c==50 && m+w+c==30)
printf("men:%2d women:%2d children:%2d\n",m,w,c);

}

你的题是这意思么???
第3个回答  2007-11-29
你把题目发出来看看啊,这程序没有意义啊!

对于C语言编程出了错,怎么能快速找出错误呢?
代码是否存在逻辑错误:1、变量使用前未被数值 实例:int main(){ int x=5,y,z;z=x*y;printf("%d",z);return 0;} 在此程序中变量y在使用之前未被赋值,所以结果输出z的值就会是系统随机分配一个值给y再加乘以x的值。2、把赋值赋值符号“=”与等于符号“==”相混淆 实例:有一下语句:...

C语言查错并改正题目求解?
解释和程序如下(见图)

C语言怎么查错误
编程错误有逻辑错误和语法错误,语法错误在在程序编译时编译器会报错,编译不能通过,此类错误如:变量使用时尚未定义,符号错误等等。而逻辑错误主要是程序在逻辑上出现问题,此类错误编译能通过,但是程序运行起来未必会得到所期望得到的结果。如:计算1到100所有数字的和,在写for循环时错写成for(i=1;i...

C语言怎么检查对错
用微软的VC6.0就可以,点编译,就是那个小叹号,如果是语法错误,就会提示你错误,在下面的框里提示你哪行错误,编译不会通过,即你的程序无法运行。然而这是很简单的,最难的是逻辑错误,即编译可以通过,而运行结果是错误的,和你预想的不一样,而这种错误很难查找,只能用分步式运行,一行一行跟着...

为什么C语言代码会报错
内存错误:C语言没有自动内存管理功能,需要程序员手动分配和释放内存。如果内存分配不正确或者越界访问,就会报错。例如,数组越界访问、野指针等。逻辑错误:代码逻辑错误是指程序按照设计要求运行,但是结果不符合预期。这种错误通常是由于代码实现上的问题引起的,例如条件语句的判断条件不正确、循环语句的...

c语言编程总无法运行,检查错误说main有问题
程序算法有问题,会出现死循环(用f10单步执行看看你就知道了),自己再检查一下吧 这类问题用链表来做很简单的,下面我用的是双向循环链表来实现的,可以参考一下 include "stdio.h"include "stdlib.h"include "malloc.h"define NULL 0 struct List { int data;char name[15];struct List *next...

c语言x的y次方,求查错
int main(int argc, char *argv[]){ double pow(double x,double y);double x,y;printf("请输入底数后按回车\\n");scanf("%lf", &x);printf("请输入指数后按回车\\n");scanf("%lf", &y);printf("%lf的%lf次方是%lf", x, y,pow(x,y));return 0;} 由于x,y和pow(x,y)的...

C语言程序查错:为什么scanf("%c",&y);语句不执行?执行结果如下:_百 ...
首先代码少了读取加油种类变量的语句,但是加的时候应该注意上边输入的回车也是一个字符,所以单单加一个scanf("%c",&y);也是无法解决问题的,所以建议在之前加一个getchar();当然一般我们对这样格式输入的问题都对变量的类型作数字量处理,而不是这样顺次输入%c控制的字符读入。希望对你有所帮助!

C++如何检验错误?
写好一个C语言程序后,可以经过以下步骤逐步检验错误:第一步:人工检查,就是说写完代码自己快速地过一下代码,把一些非常明显的错误改掉,懒的话跳过进入第二步;这里可以检查出你的体积单位是不正确的,应为dm^3。第二步:预编译,点击编译,比过程编译器会把语法错误和一些可能有问题的项目列出。

C语言常用错误代码释义大全,让你编译运行报错不是烦恼
1. 灾难性的开始:致命错误C1003与C1004<\/ 当编译器抛出C1003时,意味着错误太多,暂停编译。先确保之前的问题已修复,再逐一尝试。C1004则提醒你文件没有完整结束,检查是否忘记添加"{"或括号不匹配,注释是否完整。2. 寻找文件的足迹:C1083和C1903<\/ C1083是找不到头文件的警报,可能是文件名拼写...

相似回答
大家正在搜