问答文章1 问答文章501 问答文章1001 问答文章1501 问答文章2001 问答文章2501 问答文章3001 问答文章3501 问答文章4001 问答文章4501 问答文章5001 问答文章5501 问答文章6001 问答文章6501 问答文章7001 问答文章7501 问答文章8001 问答文章8501 问答文章9001 问答文章9501

这段C语言程序有什么错?

发布网友 发布时间:2022-04-20 21:32

我来回答

5个回答

热心网友 时间:2023-09-28 10:28

楼主在使用for语句的时候出错了。for语句内的表达式由三个“;组成,判断if的时候,括号内的表达式在等于的时候用“==”,单个“=”在C语言中表示赋值或者初始化的时候用到。修改后程序如下。
#include <stdio.h>
#include <stdlib.h>
int x = 0;
int main(void)
{
printf("程序已启动,正在计算题目允许的取值......\n");
for(;;x++)
{
if(x % 3 == 2)
printf("此数符合第一条件,正在继续验证。\n");
else
printf("此数不符合第一条件,正在回到原来重新递增。\n");
if(x % 5 == 4)
printf("此数符合第二条件,正在继续验证。\n");
else
printf("此数不符合第二条件,正在回到原来重新递增。\n");
if(x % 11 == 0)
printf("此数符合题意,此数为 %d 。正在继续验证可行的数\n");
else
printf("此数不符合第三条件,正在回到原来重新递增。\n");
}
system("pause");
return 0;
}

热心网友 时间:2023-09-28 10:28

这个程序有以下问题可改进:
1 for 循环终止条件。
2 if 的逻辑判断要用==
3 三个条件判断最好嵌套。前面的条件不满足,后面的就不用再判了。

改过且能运行的程序:
#include <stdio.h>
#include <stdlib.h>
int x = 0;
int main(void){
printf("程序已启动,正在计算题目允许的取值......\n");
for(;x <= 1000;x++)
{
printf("\n%d\n",x);
if(x % 3 == 2){
printf("此数符合第一条件,正在继续验证。\n");
if(x % 5 == 4){
printf("此数符合第二条件,正在继续验证。\n");
if(x % 11 == 0)printf(">>>此数符合题意。正在继续验证可行的数\n");
else printf("此数不符合第三条件,正在回到原来重新递增。\n");
}
else printf("此数不符合第二条件,正在回到原来重新递增。\n");
}
else printf("此数不符合第一条件,正在回到原来重新递增。\n");
}
system("pause");

return 0;
}追问这段程序有bug哦,我运行的时候是从913开始计算的,如果调成x<=100也是从13开始读起哦。

追答for循环的起始和结束可以修改。
用其它方法得到1000以内符合条件的数值有:44 209 374 539 704 869
我用的是LCC-Win32,也是这个结果。
Microsoft Visual C++ 6.0我没有,不知是什么状况。

=====
刚刚找了个VC6.0试了下。找到原因了。
你应该是在DOS黑窗口下运行的吧。
那个窗口保持不了太多的行,前面的溢出去了。
可以在DOS黑窗口或"运行"窗口用这个命令(假定程序文件名为cond3.exe):
cond3 >d:/out.txt
运行结束后打开文件"d:/out.txt",运行结果都在里面了。

热心网友 时间:2023-09-28 10:29

你好,C语言中有逻辑运算,关系运算符等,错误1是在你使用if语句时候,对应的等于号应为“==”,错误二在开始时你已经对x赋初值了,故在for(x >= 0;x++) 时你可以省了初值,但是!你不能省掉分号,应该为for(;x >= 0;x++) 这样就该可以了,我也运行过了,继续努力!

热心网友 时间:2023-09-28 10:29

else
if(i>a[x])
x=(m/2+1+m)/2;时x=4,再加1得5,你的时数组下标越界了,变成a[5];而a[5]你没有初始化。i和a[5]的大小就不知了。

热心网友 时间:2023-09-28 10:30

#include <stdio.h>
#include <stdlib.h>
int x=0;
int main(void)
{
printf("程序已启动,正在计算题目允许的取值......\n");
for(x=0;x<1000;x++) //for( ;; )两个分号
{
if(x%3 ==2)
printf("此数符合第一条件,正在继续验证。\n");
else
printf("此数不符合第一条件,正在回到原来重新递增。\n");
if(x%5 == 4)
printf("此数符合第二条件,正在继续验证。\n");
else
printf("此数不符合第二条件,正在回到原来重新递增。\n");
if(x%11 == 0)
printf("此数符合题意,此数为 %d 。正在继续验证可行的数\n",x); //后面少了x
else
printf("此数不符合第三条件,正在回到原来重新递增。\n");
}
system("pause");
return 0;
}
声明声明:本网页内容为用户发布,旨在传播知识,不代表本网认同其观点,若有侵权等问题请及时与本网联系,我们将在第一时间删除处理。E-MAIL:11247931@qq.com
手机玻璃硬度是多少合适 ips屏幕硬度怎么样 手机硬度是什么意思? 2024年拼多多春节发货时间规定是什么?过年还要48小时发货吗? e元素e8100无线鼠标怎么使用 E元素X-8100靠谱吗?可以用几年? E元素X-8100现在有几种配色,哪一种配色好呢? E元素X-8100用的是什么色的轴,适合玩游戏吗? 浙c是哪个城市 浙c是哪里 榻榻米软包怎么安装 C语言出错,错误提示:error C2106: &#39;=&#39; : left op... error C2106: &#39;=&#39; : left operand must be l-value... 编程序出现错误error C2106: &#39;=&#39; : left operand m... C 语言的两个报错 不明白 错误 5 error C2106: “=”: 左操作数必须为左值 error C2106问题 error C2106: “=”: 左操作数必须为左值 错误error C2106: “=”: 左操作数必须为左值 代码如... IF2109为什么没有1月上半旬的期货交易? c语言error C2106: &#39;=&#39; : left operand must be l-... IF值什么意思 谁知道股指期货IF都是代表什么? 铝合金的密度是多少?? 操作系统中的文件管理系统为用户提供的功能是A按文件作者存取文件B按文件名管理文件C按文件创建日期存取文 钢铁的密度是多少? 就知道铝钢的密度,求它们合金的密度范围 普通钢材的密度和不锈钢材的密度分别是多少 铁的密度与铝的密度是多少? 碳钢、合金钢的密度是多少? 铁/钢/铜/铝和密度 c语言中老是出现error C2106: &#39;=&#39; : left operand ... error C2106: &#39;=&#39; : left operand must be l-value c语言编程中error C2106: &#39;=&#39; : left operand must... error C2106: &quot;=&quot;: 左操作数必须为左值 if((x*x+y=1053)&&(y*y+x=873))错在哪 说是error C... 求个电脑上定时提醒的软件 电脑提醒软件 有没有可以在桌面显示时间,然后到点有提示的小软... 请推荐一个电脑 分钟 定时提醒软件,能用声音,闹铃... 有没有一个软件可以到点弹出窗口提醒你所要做的事? PC 上有哪些好用的提醒软件或插件 请问电脑上有没有一款软件设置好了要做的事到点自... 电脑上有没有可以记录文字的,也可以定时提醒的软件? 谁知道有没有一种电脑提醒软件? 有没有电脑上用的定时提醒软件 电脑有没有一个到了时间提醒自己干什么的软件吗? 求一款电脑弹出提醒软件,好用的 有没有什么软件可以定时提示的?(玩电脑的时候提... 白菜猪肉馅饺子,应该怎么做好吃呢? 怎样做白菜猪肉饺子