谭浩强c语言程序设计,这个程序哪里有错误?

c语言编程。我下面这个程序错了吗?错在哪?_百度知道
c语言编程。我下面这个程序错了吗?错在哪?
10000,d,g。#include &lt:一:给一个不多于5位的正整数;#include &10,%d;
printf (&quot,%d,&a);%d&;int main(){
else if(a&#47.h&gt,二;10000&gt,要求;1000;
d=(a-c*10000)/
printf (&quot,d,%d&quot,e;;;
f=(a-c*10000-d*1000-e*100)/
else if(a&#47,f,f、求它是几位数;=1)
if(a&#47,c;
e=(a-c*10000-d*1000)/%d,c.h&gt、逆序打印出各位数字;100&=1)
else if(a/d%&100;10&=1)
b=4;n);=1)
b=5,%d,g;1000&gt,b;
scanf (&quot,b&#92,e);
g=a-c*10000-d*1000-e*100-f*10题目
提问者采纳
&nbsp,e);;&e=(a-c*10000-d*;a;&nbsp,&if(a/100&&=1)&&b=1;&&scanf&&%d;=1)&&&&else&nbsp,b,g,%d&&=1)&&&&else&if(a/10000&&&&b=4;&nbsp,b\n),%d#include&&&&else&&(&d=(a-c*1;&&&&a),f;&&&int&&&&printf&&&&nbsp,e;&&&&&&&nbsp.h&&&&&nbsp,g;(&&(&b=3;&printf&nbsp,%d;&&&;&&&&if(a/10&&&nbsp,%d;&是printf&&nbsp,c;&&=1)&&int&&&nbsp,c,f;&&&&d%&&;b=5;&&&&(&f=(a-c*10000-d*1000-e*100)/10,d;else&&main(){&&&&nbsp,d;c=a/10000;&nbsp,b);&&&%d&&&&&&&;//这边错了&d%\n&&&&&&if(a/1000&&&&b=2;g=a-c*10000-d*1000-e*100-f*10.h&#include&&nbsp
这是一个错,但是运行依旧不能解决题目的问题啊。是我算法错了吗?
不是你算法错了你的算法可以的,只是你仔细看看最后的输出,不是应该是g,f,e,d,c么,为什么是g,f,d,c,e 还有你的 printf (&d%&,b\n);
其实是 printf (&%d\n&,b);
刚刚那个是笔误,我运行之后,位数输出总是字母“d”,为什么?
你的 printf (&d%&,b\n);
其实是 printf (&%d\n&,b);
是%d不是d%
提问者评价
谢谢,我智商是低,呵呵
其他类似问题
c语言编程的相关知识
等待您来回答
下载知道APP
随时随地咨询
出门在外也不愁C语言 求高手 题目是 1-1/2+1/3-1/4+1/5-1/6+1/7……+1/2n-1 怎么做啊?我的这个程序哪有问题?_百度知道
C语言 求高手 题目是 1-1/2+1/3-1/4+1/5-1/6+1/7……+1/2n-1 怎么做啊?我的这个程序哪有问题?
j,s)#include &lt,&n);=2; if(n&gt.h&j&j++)
i=-1/%d\(2*j-2)+1/ scanf(& return 0;
s+=i; } printf(&n&;%d&,s=1;=2) {
for(j=2;stdio,n;(2*j-1);int main(){ int i
提问者采纳
;%lf\ return 0;(2*j-2)+1;=2) {
for(j=2.h&j&int main(){ =n; scanf(&quot,n.0/
s+=i; } printf(&quot,s);; double s = 1.0;j++)
i=-1,i.0/n&%d&quot,&n);(2*j-1); if(n&gt变量的定义有些问题#include &lt
提问者评价
其他类似问题
按默认排序
其他2条回答
&n);(2*i-2);;i++)
s2+=-1/ for(i=1;=n,s1+s2);n&* 计算所有分数的和*&#47.h&=n;(2*i-1);main(){
&#47,n;* 计算正数的和*/%lf&quot,s1=0;i&
printf(&%lf\
/* 输入n的值*&#47,s2=0, for(i=2; scanf(&
/i&* 计算负数的和*/i++)
s1+=1&#47一楼的肯定是不对的#include &lt
#include &stdio.h&int main(){ double num1=0,num2=1,temp1=1; printf(&please input the num!&); while (1) {
scanf(&%d&,&num1);
if(num1 & 0)
printf(&Please input the number of greater than zero!\n&);
if((num1 == 0) || (num1 == 1))
printf(&The answer is:%d\n&,num1);
for(num2;num2&2*num1 - 1;num2++) {
if(num%2 == 0)
temp1 -= (1/num2);
temp1 += (1/num2);
} } printf(&The answer is :%d\n&,temp1); return 0;}没编译器
好久没用了
应该是这样,
错了的话 可以看看思路
c语言的相关知识
您可能关注的推广回答者:
等待您来回答
下载知道APP
随时随地咨询
出门在外也不愁c语言链表问题 麻烦大神看一下我这个程序是哪里出现了问题(我要按输入数字的逆序建立一个链表)_百度知道
c语言链表问题 麻烦大神看一下我这个程序是哪里出现了问题(我要按输入数字的逆序建立一个链表)
void CreatList(LinkList *p1;i++) {
p2=(LinkList)malloc(sizeof(Lnode));;data=data1;
scanf(&n& scanf(&}L#include &
p2-&%d&quot,pp-& LinkList p2; pp=(LinkList)malloc(sizeof(Lnode));data); while(pp.h&%d\next=(*p3); pp=pp-&gt,int n){
} (*p1)-&i &lt,n)!=NULL) {
printf(& pp-&next=NULL; p3=p1;typedef struct LNode{ next,data1;}int main(){ LinkList pp,&n);next=(*p3)-& struct LNode *;
(*p3)=p2;%d&quot,&data1);
pp=pp-&gt,*LinkL for (i = 0#include & } return 0.h&; CreatList(&pp,*p3
提问者采纳
data=data1;,n);/
p2-&加上这句可以让程序更人性化 scanf(& while(;加上这句会少掉一个变量输出 printf(&quot,int n){void CreatList(LinkList *p1,data1;
if (i;typedef struct LNode{%d&),*LinkL p3=p1;
p2=(LinkList)malloc(sizeof(Lnode));n&quot,pp-&gt,&n);i++) {
printf(&}int main(){ LinkList pp:\}L struct LNode *next!=NULL) {
printf(&请输入要输入的数据个数:#include &/%d\///
} *p1=(*p3),i+1):&quot,*p3;n&quot!=0)
p2-&输出倒序为; /;请输入第%d个数据;/ p2=(*p1);
(*p3)=p2; pp=(LinkList)malloc(sizeof(Lnode)); for (i = 0.h&gt:&next=(*p3); LinkList p2; CreatList(&/next,&data1); pp-&加上这句可以让程序更人性化
scanf(&); int n.h&%d&pp=pp-&gt改成下面这样试试; } return 0; printf(&;data);#include &i &next=NULL
大神 我的程序需要带头结点 你这个木有带头结点啊
那改成这样看看(主要只修改两处自己理解一下,望采纳):#include&&stdio.h&#include&&stdlib.h&typedef&struct&LNode{&int&&struct&LNode&*}Lnode,*LinkLvoid&CreatList(LinkList&*p1,int&n){&int&i,data1;&LinkList&p2,*p3;&p3=p1;&for&(i&=&0;i&&&n;i++)&{&&p2=(LinkList)malloc(sizeof(Lnode));&&printf(&请输入第%d个数据:&,i+1);//加上这句可以让程序更人性化&&scanf(&%d&,&data1);&&p2-&data=data1;&&p2-&next=(*p3)-&&&(*p3)-&next=p2;//把(*p3)=p2;&改成这样&&}&//(*p1)-&next=(*p3)-&//把(*p1)-&next=(*p3);&改成这样,也可以不要,是多余的。}int&main(){&LinkList&&int&n;//i变量无用去掉&printf(&请输入要输入的数据个数:&);//加上这句可以让程序更人性化&scanf(&%d&,&n);&pp=(LinkList)malloc(sizeof(Lnode));&pp-&next=NULL;&CreatList(&pp,n);&pp=pp-&&while(pp!=NULL)&{&&printf(&%d\n&,pp-&data);&&pp=pp-&&}system(&pause&);//在单独运行exe文件防止退出!&return&0;}
提问者评价
其他类似问题
写链表,如果有问题与设想不同就一个办法,单步跟踪观看各个变量参数的变化看哪一步与设想不同,对应到相应代码改之
嵌入式软件工程师
链表的相关知识
等待您来回答
下载知道APP
随时随地咨询
出门在外也不愁c语言高手帮忙下,看看下面这个程序哪里出错_百度知道
c语言高手帮忙下,看看下面这个程序哪里出错
printf(&); else
printf(&quot我编译的时候没有错误,ElemType v2;,Put(T; return OK;%d %d %d&=T[1]);请输入v1,ElemType v3){ T=(int *)malloc(3*sizeof(int));
printf(&}void IsAscending(Triplet T){ if(T[0]&lt:%d\ if(;
InitTriplet(T,Max(T;请输入i;#include &lt。该内存不能为read对话框;);;typedef int *Triplet,e2)),e1; T[2]=v3:T[2]),i;不是升序,&v1; return e,v2,e2,v2;T的最小元素的值是;n&;=T[2])
printf(&quot?((T[0]& T[0]=v1?T[1];=T[2]);=T[2]),ElemTT的第i元的值被换为e2; printf(&}Status Min(Triplet T:((T[1]&lt,i,v3,&e2)?((T[0]&T的最大元素的值是,ElemT return T[i-1];}void IsDescending(Triplet T){ if(T[0]&gt:T[2]);n&),ElemType e){ if(i& T[1]=v2:%d\
Triplet T=NULL,ElemType e){ e=(T[0]&gt,ElemType e){ e=(T[0]&lt,这该怎么改啊#include & e=T[i-1];Status InitTriplet(Triplet T;1||i&);
IsAscending(T):%d\3)
return ERROR; scanf(&n&quot!T)
exit(OVERFLOW):T[2]););=T[1]&&T[1]&=T[2])
printf(&quot,v1!\n&n&n&=T[1]).h&gt,e3));n&quot!\a\不是降序,i!\n& scanf(& T[i-1]=e;#define OK 1#define ERROR 0#define OVERFLOW -2typedef int S}Status Max(Triplet T;n&quot.h&}Status Put(Triplet T,但运行的时候出现“0x0040116e”指令引用的“0x”内存,e3;3)
return ERROR;); else
printf(&1||i& return e?T[1];T的第i元的值是,&v3),e1)),v3的值;,e4)),e4;n&}void main(){ ElemType v1;是降序;是升序:((T[1]&gt?T[0],v3),&v2,Get(T;
printf(&n&quot,Min(T!\=T[1]&&T[1]&gt:\
e1=e3=e4=0;%d %d&
printf(&quot?T[0],e2的值,&i:\);
IsDescending(T):T[2]),ElemType v1;;=T[2]),ElemType e){ if(i&lt:%d\}Status Get(Triplet T;,v2;=T[2]);typedef int ElemType
提问者采纳
它只是一个形参; scanf(&quot!T) exit(OVERFLOW);:T[2]);n&quot,ElemType e) { e=(T[0]&gt,e2的值; T[0]=v1。 其实就是将你第一个函数的原型Status InitTriplet(Triplet T,而你之前的只是一个普通的参数;n& } int main() { ElemType v1;T的最小元素的值是:%d\ return OK; } Status Get(Triplet T;,其实就是这个一个小小的地方,ElemType e) { if(i&lt,你自己试试吧; scanf(&1||i&gt,v1;3) return ERROR,v3); else printf(& if(; return e,v2; } Status Put(Triplet T;n& printf(&quot。#include &n& else printf(&quot,e1,&v3);%d %d&n&quot,e3)),ElemType e) { if(i&lt,e2)); printf(&3) return ERROR;1||i& IsDescending(T); T[i-1]=e,ElemType e) { e=(T[0]&lt:&#92。比较下两者有什么区别:T[2]);=T[1]&&T[1]&=T[1]);=T[2]) printf(& InitTriplet(T,ElemType v2;是升序;请输入v1,ElemType v2。 Status InitTriplet(Triplet &T,&e2)先看看我改后的运行可以对不对,Max(T; } Status Min(Triplet T;):%d&#92,Min(T,自然出现了错误?T[0],e1)),ElemType v3) { T=(int *)malloc(3*sizeof(int));n&;T的最大元素的值是;不是升序,&i.h&gt,即使你在后面T=(int *)malloc(3*sizeof(int)); typedef int ElemType,你主程序中的T并没有被复制;请输入i!\a&#92。;是降序:((T[1]&gt。; printf(&%d %d %d&n&=T[1]&&T[1]&其它的地方都不需要动一个字?((T[0]&lt!&#92。;=T[2])!\); e=T[i-1]; IsAscending(T).h&gt,i;),i; e1=e3=e4=0,ElemType i,e3,Put(T;=T[2]) printf(&); } Status Max(Triplet T:%d\=T[1]):\=T[2]); return e,ElemType v1,ElemType v2; printf(&quot?T[1];T的第i元的值被换为e2:((T[1]&)?T[0]; return 0,v3;T的第i元的值是; printf(&quot,Get(T:T[2]),&v1;n&quot,&v2;=T[2]);,ElemType v1;n&stdlib:T[2]),ElemType v3) 改为Status InitTriplet(Triplet &T;);; Triplet T=NULL; typedef int *Triplet?((T[0]&),v2,v3的值; T[1]=v2; #include &lt,ElemType v3),e4)),ElemType v1,v2;主要看看这个程序; T[2]=v3:%d\不是降序; 但想想,e4; system(&quot,ElemT #define OK 1 #define ERROR 0 #define OVERFLOW -2 typedef int Status,e2;n& } void IsDescending(Triplet T) { if(T[0]&=T[2]);/ PAUSE&n& /,i; printf(&quot!\ return T[i-1],第一个参数我改成了引用;); } void IsAscending(Triplet T) { if(T[0]&lt?T[1]; printf(&quot
提问者评价
谢谢,我后缀名写成c了,应该是c++的,我没学过c++,所以搞错了
其他类似问题
高手帮忙的相关知识
其他1条回答
似用malloc分配内存以后,就是说赋值以后不能改变了,是不能更改内容的,再赋值,只能重新分配
您可能关注的推广
等待您来回答
下载知道APP
随时随地咨询
出门在外也不愁}

我要回帖

更多关于 c语言程序设计基础 的文章

更多推荐

版权声明:文章内容来源于网络,版权归原作者所有,如有侵权请点击这里与我们联系,我们将及时删除。

点击添加站长微信