c语言。。。。求教。。为什么我运行会有五个输出?

作者&投稿:杜昌 (若有异议请与网页底部的电邮联系)
c语言问题求教 水仙花数 为什么都给输出来了....~

if(100*i+10*j+k == i^3+j^3+k^3)

这1句错了,用^的时候记住带小括号
你这句是这样就完了
这句的执行是(100*i+10*j+k == i^3) 然后 +j^3+k^3 程序发现加法成功,判断为真。
这样计算就完了,所有数都输出了。

这种问题你必须从判断语句入手



这是修改
int main(){cout<<"hello world"<<endl;int i,j,k,t;//声明变量printf("************第五单元 循环控制 求小于1000的水仙花数***
");for (i=0;i<=9;i++)//循环10次{for(j=0;j<=9;j++)//循环10次{for(k=0;k<=9;k++)//循环10次{int X=i*i*i+j*j*j+k*k*k;//修改部分1//int X=((i^3)+(j^3)+(k^3));//这是^的用法if(100*i+10*j+k ==X)//修改部分2{t = 100*i+10*j+k; printf("%d
",t);}}}}system("pause"); return 0;

楼主你好
修改如下:
#include
#include
#define MaxSize 40 //顺序表存储空间的初始分配量 --> (1)可以将MaxSize调大点儿
typedef struct
{
int *p;
int data[MaxSize];
int length;
int listsize;
}SeqList;
void InitList(SeqList &x) //定义顺序表的初始化函数
//--> (2)这里应该是SeqList &x 需要址传递 值传递是不会改变实参值的
{
x.p=(int*)malloc(MaxSize*sizeof(int));
if(!x.p) printf("存储分配失败!");
x.length=0;
x.listsize=MaxSize;
}
int main()
{
SeqList L;
InitList(L);
int i,n,k;
printf("请输入顺序表的长度n:");
scanf("%d",&n);
if(n<=0)
{
printf("数据错误!
");
return 0;
}
if(n>MaxSize)
{
L.p=(int*)realloc(L.p,n*sizeof(int));
if(!L.p)printf("存储空间扩展失败!
");
L.listsize=n;
}
printf("请输入数据:");
for(i=0;i<=n-1;i++)
{
scanf("%d",&k);
L.data[i]=k;
L.length++;
}
printf("线性表为:");
for(i=0;i<=n-1;i++)
printf("%d ",L.data[i]);
printf("
");
return 1;
}

请看注释(1)(2)

希望能帮助你哈^_^

因为你上面的break语句是在switch语句里面的,它只跳出switch语句,而没跳出for语句,故for语句还要接着执行,所以每次输出都有五个一样的语句的
我刚了下你下面说的,想问下这个程序是你自己写的呢?还是什么写的,如果是查询次数超过5次,自动退出查询的话,你这个程序就有问题了

break是退出本层的操作
你的for循环还在更上一层。。。
循环输出五次,当然会把你的输入对应的值显示五次了。

貌似你的程序和要求有一定出入。
把那个scanf放到for循环里面试试。

首先你的SCANF输入操作没放到FOR循环里面,只录入一次输入操作,不符合你的编程意图,其次你的CASE不能带大扩号,因为BREAK只能跳出当前的大扩号,因为MAIN函数由上向下顺序执行,所以相当于你的五个条件都要执行一次,不论满足与否。

printf("Enter choice: ");
scanf("%d",&n);

放在for循环里最下面试试

for 循环循环了五次,所以会重复输出 5个

因为你加了一个for循环啊,你把for去掉。。


语言学求教:指出汉语普通话\/a\/音位的几个条件变体,并分别描述其发音特点...
\/a\/的主要音位变体有 [a] 、 [ɑ](汉语拼音中的a)、 [A]、[ε]。1、[a]条件变体:出现在韵尾【-i、-n】之前。发音特点:韵腹收到靠前的韵尾-i、-n的影响,实际读音为前元音【a】。2、 [A]条件变体:无韵尾。发音特点:由于无韵尾,韵腹读音舌位偏央。实际读音为前元音【A】。3、 ...

求教:语用含糊与模糊语言有哪些区别和联系?
另外,曹聪孙(1989)和将有经(1991)等学者还根据索绪尔的语言和言语的相区别,提出了模糊语言和模糊言语这对概念.他们认为模糊语言有广义、狭义之分,前者指语言的模糊性,后者指模糊词语和模糊结构这样具有模糊性的语言单位.模糊言语是语言应用中人们可以觉察到的各种没有具体含义而不影响成功交际的话语,是...

C语言问题求教
ab都是在main中声明的局部变量,在fun中是不能用的。z是在函数外声明的公用变量,但是它的有效范围只能从它的定义点到文件结束,也就是说main中可以用z但fun不行,所以答案选择A

C语言,求教
详情请查看视频回答

c语言疑难问题求教。
答案一:char *fun(char *s,char *t) ,如果fun前没有那个星号,也就是char fun(char *s,char *t) ,你肯定知道这个函数的形参是两个指向char类型的指针,返回值是一个char类型的字符。如果加上*呢,就告诉你了这个函数的返回值不仅仅是char,而是一个char*也就是这个函数可以返回一个指针类型...

C语言 求教
主要有两类错误。第一类,if语句中的条件,不可以写成连续的不等式的形式。如需要两个条件一起写的,应当拆分成两个简单的条件,并用逻辑与运算符&&连接两个简单条件。第二类错误,是if语句的后面的圆括号后不能紧接着写一个分号(程序中有一处错了),否则就表示满足这个条件时什么都不做。

一个关于C语言的问题,求教!!
但C语言中,“=”是赋值运算符,“==”是关系运算符。如:if (a==3) a=b;前者是进行比较,a是否和3相等,后者表示如果a和3相等,把b值赋给a。由于习惯问题,初学者往往会犯这样的错误。5.忘记加分号。分号是C语句中不可缺少的一部分,语句末尾必须有分号。a=1 b=2 编译时,编译程序在“...

c语言题目。求教。
答案是C,这道题是考对“求余”的运用。其中x%=4相当于x=x%4,即x对4求余再赋值给x。A:x%4的值为2,则x-x%4的值是4,y对4求余得到3,不符合。B:同上。C:括号里面的x对4求余得到2,y对2求余得到1,符合。D:y对x求余得到1,x对4求余得到2,两者相减是-1,不符合。

求教几个语言文字方面的问题!
1、应改为:毋庸质疑,二手房市场这块‘大蛋糕’将会成为下一个争夺热点。2、C 一般写成夹克。茄(读jia一声)时只作雪茄 3、C 应改为:我们要看到,公平只能是相对的。4、CD A句应改为:希望这节课能给各位同学的写作带来一点小小的启示。B句应改为:写实和想像(不是象)作为作文教学的两...

求教C语言中表达式的问题,求解!!!
在c语言中真是1,假是0。任何比较<=,>,!=等的结果只可能是真或假,亦即1或0。1 对于a<=x,不论a和x的值是多少,结果只可能是0或1,而0或1都是小于b(100)的。所以,a<=x<=b的值是1(真)。2 在c中5>2>7>8是允许的。与1同理,5>2>7的结果肯定是小于8的。所以,5>2>7...

南城县13736093573: 为什么我运行C语言后,显示不到结果? -
范逃源心: 为了系统兼容性考虑,使用system("pause");较好,将它加在主函数结尾,return 之前,注意包含头文件stdlib.h另外,用getch();最好包含头文件conio.h************************************************ 原程序有误, int a,b sum; 应改为 int a,b...

南城县13736093573: c语言程序 求结果,为什么我运行的结果什么都没有? -
范逃源心: if(x*x==i+100&&y*y==i+268)printf("%ld",i); system("pause"); return 0; 这四句,看看你的控制接口怎么控制的. 第一次循环什么没输出就return了

南城县13736093573: 为什么我的C语言程序编译没错误但是运行只出现一个黑框,没有内容? -
范逃源心: 看一下你的代码 是不是没有执行就直接结束了 还是说你没用输出,printf

南城县13736093573: 为什么我的c语言程序运行起来会停止工作 -
范逃源心: s没有赋初值,n从1开始循环,因为你要做a%n 的操作 #includevoid main() { int a,n,s=0;//这儿s printf("请输入要判断的数\n"); scanf("%d",&a); for(n=1;n { if(a%n==0) { printf("%d,",n); s++; } else continue; if(s==10) { printf("\n"); } } }

南城县13736093573: 简单C语言,程序显示没错误,但是总是运行不出来,为什么呢? -
范逃源心: 1.scanf("%d %d %d %d %d %d",&num[i]); 改成:for(i=0;i<6;i++) scanf("%d",&num[i]);2.for(i=1;i<=6;i++)改成for(i=0;i<6;i++) 数组下标是从0开始的,=6就越界了

南城县13736093573: 为什么我的C语言程序运行不了 -
范逃源心: 如果你将TURBOC2安装在C盘一般不用改目录(但最好看一下);如果安装在其他盘符就要改些东西了.具体修改如下:先按“ALT+O”,然后选择“Directories”敲回车,再敲回车,然后将目录改成你的TURBOC2所在的地方.下面的那两个也要改,最后选择“Save options”敲两次回车就行了.对了,有个问题要注意一下,TURBOC2中一般不支持中文,所以安装目录也不能出现中文字符.

南城县13736093573: 为什么C语言程序输入运行总说有个错误?请教高手解答 -
范逃源心: 新手用C语言经常犯的一个错误就是 scanf("%d",&n);里面丢掉了"&" 当然程序出错的原因是非常多的,既然你问程序出错原因,可是又不提供足够的信息,抱歉,那我只能推测你是新手了.C语言编程习惯很重要啊,否则,内存非法访问这种错误会经常发生,下标越界、丢个星号,或者&号,又或者定义了一个指针但是没有初始化过就访问它,很容易崩溃掉的,这些错误编译器几乎是不会检查出来的,运行的时候就是灾难性后果了,而且还不好找原因

南城县13736093573: 为什么我写的c语言在编译后没错误,没警告,但是运行时却没结果. -
范逃源心: 楼主,你好!编译没有错误只能说明没有语法错误,并不能说明代码的逻辑没有错!因为编辑器主要是根据C语言的语法来检查你的代码有没有错!

南城县13736093573: 我win7的电脑,运行c语言程序为什么总显示有一个错误,0个警告,运行不了,怎么解决? -
范逃源心: 原因可能有方面: 1、程序本身就有问题,你好好检查一下吧! 2、你应该是第一次编译通过了,然后将那个黑洞洞的窗口最小化了,...

南城县13736093573: 我运行c语言怎么出现了这毛病,请高人指点迷津!!! -
范逃源心: scanf("%d%d%d",a,b,c); 改 scanf("%d%d%d",&a,&b,&c")/*需要取地址 */

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