几个c的简单小问题~~不会调试~汗

mengjing227015 2011-03-07 10:36:01
第一题
#include<stdio.h>
void main()//插入一个数后,按排序放在适当位置
{int a[11]={1,4,6,9,21,29,32,35,40,41};
int i,j,n,m;
printf("输入一个要插入的数:\n");
scanf("%d",&m);
for(i=0,j=9;i<=j;i++,j--)
{if((a[i]<m)&&(a[j]>m))
continue;
else if((a[i]>m)&&(a[j]>m))
{for(n=9;n>=i;n--)
a[n+1]=a[n];
a[i]=m;
}
else if((a[i]<m)&&(a[j]<m))
{ if(j==9)
a[10]=m;
else
{for(n=9;n>j;n--)
a[n+1]=a[n];
a[n]=m;
}
}
}
printf("插入新数后数列为:\n");
for(i=0;i<=10;i++)
printf("%d,",a[i]);
}

第二题、
#include<stdio.h>//魔方阵:每行、每列、对角线之和相等1~n*n的数
#define N 3
void main()
{int a[N+1][N+1];
int m,n,i,j;
a[1][(N+1)/2]=1;
m=1;n=(N+1)/2;
for(i=2;i<=(N*N);i++)
{if((m==1)&&(n==N))
{a[N][1]=i;
m=N;
n=1;
}
else if(m==1)
{a[N][n+1]=i;
m=N;
n=n+1;
}
else if(n==N)
{a[m-1][1]=i;
m=m-1;
n=1;
}
else
{a[m-1][n+1]=i;
m=m-1;
n=n+1;
}
}
for(i=1;i<=N;i++)
{for(j=1;j<=N;j++)
printf("%d",a[i][j]);
printf("\n");
}
printf("\n");
}


第三题
#include<stdio.h>
void main()//比较两个字符串,return用法不会!!
{int j;
int com();
j=com();
printf("比较结果为:%d\n",j);
}

int com()
{int i;
char s1[40],s2[40];
printf("输入字符串s1:\n");gets(s1);
printf("输入字符串s2:\n");gets(s2);
while(s1[i]!='\0'&&s2[i]!='\0')
{if(s1[i]==s2[i])
i++;
else if(s1[i]>s2[i])
return(1);
else if(s1[i]<s2[i])
return(-1);
}
if(s1[i]=='\0'&&s2[i]=='\0')
return(0);
else if(s1[i]=='\0'&&s2[i]!='\0')
return(-1);
else if(s1[i]!='\0'&&s2[i]=='\0')
return(1);//前面一样,字符串长的大。
}



第四题
#include<stdio.h>
void main()//复制字符串
{char s1[40],s2[40];
int i=0;
printf("输入字符串s2:\n");
gets(s2);
while(s2[i]!='\n')
s1[i++]=s2[i++];
s1[i]='\0';
printf("输出字符串s1:\n%s\n",s1);
}
...全文
248 20 打赏 收藏 转发到动态 举报
写回复
用AI写文章
20 条回复
切换为时间正序
请发表友善的回复…
发表回复
mengjing227015 2011-03-16
  • 打赏
  • 举报
回复
谢谢大家的提点和指责,我明白了,继续向你们学习!!!!
AnYidan 2011-03-14
  • 打赏
  • 举报
回复
[Quote=引用 4 楼 zhao4zhong1 的回复:]
单步调试和设断点调试是程序员必须掌握的技能之一。
[/Quote]

总不能每次都要别人帮你调试吧
alain_x 2011-03-09
  • 打赏
  • 举报
回复
第4題while條件改成 while(s2[i] != '\0'),
alain_x 2011-03-09
  • 打赏
  • 举报
回复
第4題你多了加了i...有用scanf好點.


#include<stdio.h>
void main()//复制字符串
{char s1[40],s2[40];
int i=0;
printf("输入字符串s2:\n");
scanf("%s", s2);
while(s2[i]!='\n')
{
s1[i]=s2[i];
i++;
}
s1[i]='\0';
printf("输出字符串s1:\n%s\n",s1);
}
mengjing227015 2011-03-09
  • 打赏
  • 举报
回复
o ,第四题类?
alain_x 2011-03-09
  • 打赏
  • 举报
回复
第3題你忘了i = 0



#include <unistd.h>
#include <stdio.h>

int com()
{
int i, j, k;
char s1[40], s2[40];

i = 0;
printf("输入字符串s1:\n");
scanf("%s", s1);
printf("输入字符串s2:\n");
scanf("%s", s2);
while(s1[i]!='\0'&&s2[i]!='\0')
{
if(s1[i]==s2[i])
i++;
else if(s1[i]>s2[i])
return(1);
else if(s1[i]<s2[i])
return(-1);
}
if(s1[i]=='\0'&&s2[i]=='\0')
return(0);
else if(s1[i]=='\0'&&s2[i]!='\0')
return(-1);
else if(s1[i]!='\0'&&s2[i]=='\0')
return(1);
}

void main()
{
int j;
int com();

j=com();
printf("比较结果为:%d\n",j);
}
mengjing227015 2011-03-09
  • 打赏
  • 举报
回复
很感谢大家指点,我前两题已经调试出来。后两题不知是什么问题,运行不出结果。望帮忙!!
第三题
#include<stdio.h>
void main()//比较两个字符串,return用法不会!!
{int j;
int com();
j=com();
printf("比较结果为:%d\n",j);
}

int com()
{int i;
char s1[40],s2[40];
printf("输入字符串s1:\n");gets(s1);
printf("输入字符串s2:\n");gets(s2);
while(s1[i]!='\0'&&s2[i]!='\0')
{if(s1[i]==s2[i])
i++;
else if(s1[i]>s2[i])
return(1);
else if(s1[i]<s2[i])
return(-1);
}
if(s1[i]=='\0'&&s2[i]=='\0')
return(0);
else if(s1[i]=='\0'&&s2[i]!='\0')
return(-1);
else if(s1[i]!='\0'&&s2[i]=='\0')
return(1);//前面一样,字符串长的大。
}



第四题
#include<stdio.h>
void main()//复制字符串
{char s1[40],s2[40];
int i=0;
printf("输入字符串s2:\n");
gets(s2);
while(s2[i]!='\n')
s1[i++]=s2[i++];
s1[i]='\0';
printf("输出字符串s1:\n%s\n",s1);
}
jinzhou520 2011-03-07
  • 打赏
  • 举报
回复
[Quote=引用 4 楼 zhao4zhong1 的回复:]

单步调试和设断点调试是程序员必须掌握的技能之一。
[/Quote]
基本调试技能.
微笑的鱼 2011-03-07
  • 打赏
  • 举报
回复
[Quote=引用 4 楼 zhao4zhong1 的回复:]
单步调试和设断点调试是程序员必须掌握的技能之一。
[/Quote]

找本VC的入门书学啊,不会调试又不愿意学就干脆别写代码了,这是基本素质!!!
梦想照进灵魂 2011-03-07
  • 打赏
  • 举报
回复
问题千奇百怪哇 你到底要问什么 你要说清楚啊
ForestDB 2011-03-07
  • 打赏
  • 举报
回复
问题呢?
就一堆代码?
赵4老师 2011-03-07
  • 打赏
  • 举报
回复
单步调试和设断点调试是程序员必须掌握的技能之一。
碎碎念 2011-03-07
  • 打赏
  • 举报
回复
设置断点,然后在跑单步...debug..
chenhonglin000 2011-03-07
  • 打赏
  • 举报
回复
调试慢慢来吧,实在不行一个个找也能找到单步和断点的。多熟悉就好!
bdmh 2011-03-07
  • 打赏
  • 举报
回复
你什么不会,不会调试吗,F9设置断点,F5运行,F10但不执行,自己试试就知道了
mengjing227015 2011-03-07
  • 打赏
  • 举报
回复
??没有人
wuywyt1010 2011-03-07
  • 打赏
  • 举报
回复
你所说的调试问题是指,程序看不懂;还是不知道如何对程序进行编译、连接、运行;还是不知道如何对程序进行一步一步(一条一条)的执行,以便理解程序的执行过程和代码的含义呢?
shanshan1108 2011-03-07
  • 打赏
  • 举报
回复
c程序是计算机高级语言的基础 程序不是写出来的 是调出来的
自己学着调试吧 加油
经典的书哦多年以前,我设计了一个基于Intel 80C188的产品,需要一个实时内核。在前一家雇主那里工作时,我一直在使用一个知名的内核(以下我称为内核 A),但该内核对我当时设计的产品来说是太贵了。我找到了一个廉价的内核(当时大约1000美元以下我称为内核 B),并且开始了我的设计工作。为了让我那几个简单的任务运行起来,竟花了我两个月时间。我一天到晚给该厂商打电话求援。该厂商声称内核B是用C语言写的,可我还得用汇编语言给程序中每个对象除实话,虽然该厂商很耐心,而我实在是烦透了!产品的开发也耽误了。我真是不想再花时间去调试那个廉价的内核了。后来得知我是该厂商的第一个客户,这个内核实际上没有完全测试和调试过。 还是回到正路上来,我决定使用内核A。五个用户的价格是5000美元,此外,我的每个产品还要付200美元的内核使用费。在当时,那可是一笔很大的开支。就算是花钱买个心里踏实吧。花了两天时间,内核转起来了。项目进展到3个月上,我的一个工程师发现内核好像有毛病(bug)。当内核中的这个毛病确认无疑以后,我把我的代码寄给了该厂商。此时,厂商提供的90天的担保已经过期了。为了得到答复,我还得支付每年500美元的维护费。我和销售商争辩了好几个月,他们应该尽快纠正这一处毛病才是。我实际是在为他们做好事。可是,他们不予理睬。最后,我只好认了,又签了程序维护合同。而该厂商6个月以后才改正了那个毛病。是的,6个月以后!我简直气坏了,最要紧的是,我的产品开发耽误了。花了将近一年的时间,内核A才在我的产品中稳定运行。然而,我得承认,从此以后,内核A再没有什么问题了。 渐渐的,我自然会想到,写个实时内核有那么难吗?不就是不断地保存、恢复CPU的那些寄存器嘛。于是我决定试试写一个自己的实时内核,主要用业余时间、晚上和周末。也花了大约一年的时间才使内核转起来,它在某些方面还比内核A好。我并不想开公司去卖这个内核,因为当时市场上已经有大约50个实时内核的产品。 我想到给杂志写篇文章,打算投《C语言用户杂志》(《C User’s Journal 》)因为内和是用C写的,我听说该杂志每页给100美元的稿费,而其他杂志一般是每页75美元。我的文章大约有70页。这笔稿费对我写内核所花时间是不错的补偿。很不幸,文章拒载了。有两个原因,一个是文章太长,杂志不愿意连载。另一个原因是,他们也不愿意“又登一篇关于内核的文章”。 我决定转向《嵌入式系统编程》(《Embedded System Programming》)杂志,因为我的内核是为嵌入式应用设计的。我和该杂志的编辑Mr.Tyler Sperry联系,告诉他我的实时内核想在他的杂志上发表,得到的答复和《C语言用户杂志》是一样的,我们不要“又是一篇关于内核的文章”。我告诉他们,我的实时内核和他们的不一样,是占先式的,可以和许多商业上出售的内核产品竞争,源代码可以放在《嵌入式系统编程》杂志网站的留言板(BBS)上。我每周要给Mr.Tyler打两三个电话,几乎是求他发表我的文章。他终于同意了,大概是我的电话打得他烦了。我的文章从70页压缩到30页,连载在1992年5月期和6月期杂志上。该文章几乎是1992年最热门的文章。头一个月,就有500多人从《嵌入式系统编程》杂志的网站留言板上下载我的源程序。Tyler先生真怕实时内核的商家们会要了他的命,因为在他的杂志上刊登了实时内核的源码,这使商家们感到不安。我猜测,商家们一定已经认识到μC/OS(当时称作μCOS)的质量和功能。该文章实际上是第一次把实时内核的内在工作原理曝光,一些过去的秘密公开了。几乎是文章在《嵌入式系统编程》杂志上刊登出来的同时,R&D出版社的Bernard (昵称Berny)Williams杂志来电话了。《C语言用户杂志》就是这家出版社出的,此时距我最初与该杂志联系已有6个月了。 我留言给我的妻子,说他对我的文章感兴趣。我回电话给他,“你不觉得你有点太晚了吗?我的文章已经在《嵌入式系统编程》杂志上发表了”。Berny只是说,“不,不,你没明白我的意思,因为文章那么长,我打算出一本书”。起初,Berny只是想简单地把我手上已有的那些出成一本大约80页的书。我告诉他,如果写成一本书的话,我打算写得更好一些。以后,我又花了大约6个月的时间增加书的内容,就成了本书第一版的那个样子。书大约有250页。我把实时内核的名字由μCOS改成μC/OS,因为《嵌入式系统编程》杂志的读者一直称为“mucus”,那个自发音像英语的“痰”,让人听起来不舒服。回想起来,这可能是第一次给实时内核起名字。总之,实时内核μC/OS就这样诞生了。开始时,书销售的很慢,Berny和我计划在书的适用期内能售出4000到5000册,可是照开始时的销售速率,能卖出去2000册就不错了。Berny坚持说,让人知道这本书需要时间。于是他连续在《C语言用户杂志》杂志上刊登广告,一直持续了一年。约在书正式出版一个月之前,我第一次参加了在加利弗尼亚州圣克拉拉(Santa Clara)举行的嵌入式系统会议,那是1992年的9月,我第一次见到Tyler Sperry先生,我给他看了即将出版的书的草稿。他很快地翻了翻,问我愿不愿意在下一届嵌入式系统会议上做个讲演。下届会议在亚特兰大召开。那再好不过了,我说我愿意。但我讲些什么呢?他建议我讲怎样使用“小实时内核”。路上,我想,我这是怎么了?我从来没有在那么多人面前讲过话,到时候我自己就蒙了怎么办?如果我讲的都是些很平常的知识……人们可都是花了不少钱来听会的。以后的6个月中,我准备了讲稿。后来的会上,听我课的有70多人。起初的20多分钟里,我出的至少有1磅多。课后,约有15人上前来表示非常喜欢我的课,也喜欢我那本书。我得到了1993年在圣克拉拉举行的会议的邀请,可我没能参加,我参加了1994年波士顿举行的会议。从那以后,每次嵌入式系统会议上都有我的例行演讲。过去几年中,我进了会议的顾问委员会(Advisory Committee),最近的几次会上,每次的会议我都要做至少三次讲演,每次的听众都在200到300人之间。会议对我的讲演的评价总是在前10%。 至今,μC/OS的书已售出了15,000多册。我收到并答复的来自世界各地的电子邮件超过1000份。1995年,《μC/OS The Real Time Kernel 》被翻译成日语在《接口》(《Interface》)杂志上刊登。μC/OS已经被移植到以下一些CPU上。 Analog 设备公司 AD21xx ARM公司 ARM6,ARM7 日立公司 64180,H8/3xx, SH 系列 Intel公司 80x86 (Real and PM), Pentium , Pentium Ⅱ, 8051, 8052, MCS-251, 80196, 8096 三菱公司 M16和M32 摩托罗拉公司 PowerPC, 68K, CPU32, CPU32+, 68HC11, 68HC16 飞利浦公司 XA 西门子公司 80C166和TriCore TI公司 TMS320 Zilog公司 Z-80 and Z-180 1994年,我决定写第二本书,《Embedded System Building Blocks, Complete and Ready-to-use Modules in C》。由于某些原因,此书不如μC/OS那么流行,虽然书中很多信息在其他地方是找不到的。我始终认为,对于刚刚步入嵌入式世界的人们来说,这是一本理想的书。 1998年,我开通了μC/OS的正式网站:www.μCOS-Ⅱ.com,打算在该网站上放进移植、应用短文、相关网站、常见问题解答(FAQ)、μC/OS和μCOS-Ⅱ的版本更新等。只是这都要花时间去做。 回到1992年,我绝没有想到写篇文章会改变我的生活方式,实际上确实是这样,我遇到了很多非常有趣的人,交了很多好朋友。我还是回答收到的每一个电子邮件。我确信,如果你写给我什么的话,回应你是我的责任。

70,037

社区成员

发帖
与我相关
我的任务
社区描述
C语言相关问题讨论
社区管理员
  • C语言
  • 花神庙码农
  • 架构师李肯
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧