急急急!各位大神,帮我看看这个程序哪里出错了吧

作者&投稿:鞠闻 (若有异议请与网页底部的电邮联系)
求大神,帮我看看这个程序哪里出错了~~~~

显示什么错误总要说啊,问题不说清楚,怎么帮你看啊,只看到你最后有个问题,case 7的时候让flag = 0 就退出了,不用exit(0); 而且输入错的数字应该直接break,进入下次循环而不是让flag = 0,这样的话,case 7 就没用了

代码写的好乱 前面没看 问题肯定是出在while循环里 ,
if(q.font.time!=-1)
{
flag=1;
}

这个决定循环的继续 检查下q.font.time这个把!

首先我们认识到,这是个循环遍历求解的过程(暂且这样分析求解这个问题吧!也不能否认会有高人找到规律,用递归回溯的方法解之,如果有的话请与大家分享哦,反正我考虑了很久,都没有发现捷径!)然后,我发现的一个稍微点的规律吧,能够节省一下计算量的,就是在循环的时候可以设置循环上限为(num+1)/2,证明很简单,这里略之!
我看了下你上面的代码,好像输入5也会出现问题!
你能文字描述下你的算法吗?可以进一步讨论!望追问!

我的算法如下:
0~(num+1)/2之间用两个数i,j(i<=j),通过双重循环i、j,不断取得和为num的连续自然数,
同时比较j-i与之前_j-_i大小,取较大值存入_j、_i!
直到双重循环结束,最后得到的连续自然数为_j~_i。
源码如下:
// Decompose_into_123.cpp : 定义控制台应用程序的入口点。
//

#include "stdafx.h"

void decompose(int);

int _tmain(int argc, _TCHAR* argv[])
{
int N;
printf("请输入需要分解的整数n =");
scanf("%d",&N);

decompose(N);
return 0;
}
void decompose(int num)
{
int s=(num+1)/2,T=0,n=0,i=0,j=0,_i=0,_j=0,l;
while(j<(num+1)/2)
{
for(i=j;i<=(num+1)/2;i++)
{
T=T+i;
if(T==num)
{
n++;l=i-j;
if(l>_i-_j)
{_i=i;_j=j;}
}
}
if(n==0)
T=0;
j++;
}
if(n==0)
printf("No Answer");
else
{
printf("%d =",num);

for(int k=_j;k<_i;k++)
printf("%d+",k);
printf("%d",_i);
}

}
VS2010下成功实现功能!希望对你有用!谢谢

for循环中有三部分: if (z>0),else if (z==0),else
第一部分功能是尝试 i+(i+1)+(i+2)+……看能否刚好等于输入值,(i第一次取值为1,从1开始)

等于 就进入第二部分:输出结果
不等于 就进入第三部分:i加一个后,再回到第一部分,从新开始尝试,

【错误原因】
因为i第一次在第三部分取2后,回到 for (;i<=x&&i>0;i++)又自加了一次,
所以,第二次尝试是从3开始了,而不是2,

只需要把第三部分中 y=y+1; i=y;先后顺序调换一下就可以了

虽然有点罗嗦,但能看懂吧!!!

  • 我不知道





急急急急急!!!谢谢各位大神帮忙
回答:有答案了 324 25 1620 648 8100

盐能洗掉墨水是什么原理?求各位大神帮帮我!急急急!
食盐中含有其他杂质较多,通常食盐显碱性,而墨水的色素目前常用的是酸性墨水蓝和直接湖蓝染料,墨水的色素显酸性,酸碱中和,食盐能中和掉墨水的色素,所以你看到食盐可以洗掉墨水,确切来说,是洗掉了色素。

苹果电脑用什么浏览器报名教师资格证!在线等!急急急!各位大神江湖...
苹果电脑最好用IE浏览器来报名教师资格证考试。苹果电脑是不能用IE浏览器的,但是使用WineBottler 这个神奇的软件,它能够让你无压力的不装双系统也能在Mac OS上跑Windows应用哦!下面介绍苹果电脑如何安装使用IE浏览器的简单步骤。首先下载一个WineBottler for mac软件。2.下载完毕之后,打开dmg文件后将...

三星笔记本电脑搜不到无线网怎么回事儿???请各位大神们帮帮忙。。。谢 ...
您好:根据您的描述,建议您尝试:1.重启电脑再次搜索尝试。2.检查是否关闭了无线功能。3.更换路由接入点尝试。4.重新安装网卡驱动。若通过以上方法问题依然存在,请您带好购机发票、包修卡和机器送到三星服务中心,由工程师检查机器并处理。三星服务中心地址:http:\/\/support-cn.samsung.com\/support\/...

急求!!各位大神来帮帮偶吧!
回答:设一共有x层 4+2(x-1)=40 4+2x-2=40 2x=38 x=19 所以 Sn=(4+40)*19\/2 =418(根)

急求各位大神、帮忙翻译下推荐信,翻译成日语!
私は呉の同级生にこの手纸を発行し、この正式な勧告を非常に夸りに思っています。学校では、私は常に、呉の同级生のインストラクターを再生するので、私はかなり知っていた彼に言った。 3年间の研究の间に呉の学生が分队を果たしてきた、と[]彼らの研究中に优秀な学生を指名された...

初一数学题,各位大神帮帮忙啊,速度急用
1、[9a^2-3)^2-3(a^2+3)]除以3a^2 =[81a^4 +9-54a^2 -3a^2-9]\/(3a^2)=[81a^4 -57a^2]\/(3a^2)=27a^2 -19 2、原式=[(a^2+1)\/(a^2-1)]+[1\/(a-1)]-[1\/(a+1)]=[(a^2+1)\/(a^2-1)]+[(a+1)\/(a^2 -1)]-[(a-1)\/(a^2-1)]=[(a^2 +1...

紧急求助啊各位英文大神!!!帮忙翻译一下!!救命啊~!救火啊~!明天就要...
展望二十一世纪,人力资源管理在企业中的地位日趋重要。在这样一种发展趋势下,我国企业人力资源管理现状却不容乐观。因此,中国企业人力资源管理改革应从建立和培养一支专业化的人才资源管理队伍开始,构建有效的人力资源管理体系,使企业形成以人力资源部门为轴心的、对企业经营战略起着巨大推动作用的统一结构...

求各位大神帮帮忙解一下这道数学题,拜托了,急急急!
∵Sn+1 - Sn =An+1 Sn=3\/2An-3 ∴Sn+1 - Sn = (3\/2An+1 - 3)-(3\/2An-3)=An+1 即(3\/2An+1 - 3)-(3\/2An-3)=An+1 即3\/2An+1 - 3\/2An=An+1 即An+1=3An ∴An=a1×3^(n-1)又∵数列{An}满足:Sn=3\/2An-3 ∴当n=1时,该式也成立...

什么花的花语是只宠你一个,或是只爱你一个?各位大神帮帮忙哈,急!!!
十一朵玫瑰:一生一世只爱你一人。白色桔梗:一一生只爱你一人。鳞托菊:永远的爱。樱花草:除你之外,别无他爱。

启东市17033091973: 本人在编程方面是个菜鸟,哪位高手能帮忙看看这个程序,好像函数有点问题,急急急!! -
饶倪降压: 程序我帮你运行啦编译没有错误,连接没有错误,也可以运行--->这就是说,程序语法上是正确的.但是,运行后执行有错误------>这就是说程序编写有错.错误点: void insert(struct student stu[]) 该函数在执行过程中陷入死循环 原因: 该函数下 ...

启东市17033091973: 求大神帮我看看这程序哪错了? -
饶倪降压: #include int main(){int a1;int a2;a1=9;a2=9999;printf("%c",a1);printf("%d",a2);return 0;你掉了好多分号...

启东市17033091973: 高手帮我看看这是什么程序?
饶倪降压: 开机自动检查磁盘错误的程序,没事的,是磁盘上有坏道或分区表有问题了.让它查吧

启东市17033091973: 各位大神帮我看看这个程序该怎么写啊
饶倪降压: 谢谢,我的意思是,因为xx会随着p取不同的值,所以在大于15,大于5.5小于15这三种情况下做不同的处理,但是因为xx是个数组,所以这个不能直接放到if后边,可以用for一个一个遍历数组中的数,但是会很慢,我想知道有没有更好的方法

启东市17033091973: 求各位大神帮我看看这个matlab程序 就是运行不了 多谢了 系统提示缺少function -
饶倪降压: function []=facedetec()sum=0;clc;close all;iptsetpref('ImshowBorder', 'tight')f=imread('faces.jpg');% O...

启东市17033091973: 来个大神帮我看看这个C语言的程序到底是哪里错了,在线急等!!! -
饶倪降压: //根据你的代码修改的#include <stdio.h>#include <stdlib.h>#include <math.h> int main(void ) { float sum = 0.0 ;//这里是0 float t; int i =1; int j =0; int cnt = 0; while ( (float)1/i > 1e-4)//负值没考虑 { t = pow(-1,j) * (float)1/i ; sum = sum + t ; i++; i++; j++; ...

启东市17033091973: 大家帮我看看这个程序有问题没,题目是1 - 1/2+1/3 - 1/4+…+1/99 - 1/100#includevoid main(){int k,i;float s,s1=0,s2=0;for(i=1;i -
饶倪降压:[答案] #include void main() { int k,i; float s,s1=0,s2=0; for(i=1;i

启东市17033091973: 请大神帮忙看看这个c++程序是怎么个问题,这是一个复制字符串中字符的程序,运行时老是出现这个 -
饶倪降压: 帮你改了,注意输入字符串大小需要+1,因为有'\0',拷贝也要将'\0'考入,否则会显示乱码,你的问题肯定是越界操作内存,在使用指针时很容易产生这个错误.

启东市17033091973: 急急急大神们帮我看看,我这程序哪里出了错误,题目要求是秋100 - 200不能被3整除的书,运行是没错 -
饶倪降压: 改成这样:for(……){ if(……) continue; printf(……); }

启东市17033091973: 请JAVA大神帮我看看这个程序有什么问题 -
饶倪降压: sun公司对该异常的解释如下:当应用程序递归太深而发生堆栈溢出时,抛出该错误.所以你只需要检查你之前的代码,是否哪个地方使用了递归,看看这个递归有没有终止的条件,就可以了.你这个程序最下面明显是一个递归啊,你看一看你这个递归有终止的条件吗.

本站内容来自于网友发表,不代表本站立场,仅表示其个人看法,不对其真实性、正确性、有效性作任何的担保
相关事宜请发邮件给我们
© 星空见康网