c语言教程题目 杨老师的课程。 大神前来找错啊!!!,,

求C语言大神!!!帮我找错误_百度知道
求C语言大神!!!帮我找错误
【测试数据与运行结果】
输入,j;int main(){ int array[N][30],求大神:查找满足上述条件的所有等差数列并依次将其保存到a指向的数组中(一行保存一个数列),int n){= int t=0,array[j][30]);
else if(sum&gt,函数返回找到的数列个数; j& k++)
a[t][30]=k.out中;
break:n=500
屏幕输出; array[j][30] ;\stdlib,n););#define N 100int found(int a[][30].h&}int found(int a[][30]。
【编程要求】
1.编写函数main()。函数的功能; i& t=found(array,&n);t ,将找到的所有等差数列输出到屏幕及数据文件myf2;
printf(& i&lt:声明一个二维整型数组用于保存查找结果.out中,输入一个整数并保存到变量n中(n≤600).h&
if(sum==n)
for(k=n&quot,t; j++)
sum+=j;P%d&quot,k。用n和整型数组作实参调用found函数;#include&lt。最后将考生本人的学号姓名输出到文件myf2;
8 9 10 11 12 13 14 15 16 17 18 19 20 2l 22 23 24 25 26 27 28 29 30 31 32
59 60 6l 62 63 64 65 66
98 99 100 101 102
500下面是我的程序;;);t&quot.编写函数int found(int a[][30]。函数的功能:(1)公差为1,int n);
printf(&quot:\ scanf(& for(i=1 ;
} } return t,j!;;n&%d\
for(i=0 ;n)
break:#include&(2)数列中各项数值之和等于n; }
return 0; int sum=0; i++) {
for(j=}输出没有结果。
2!,n,查找并输出所有满足以下条件的等差数列,int n); i++) {
for(j=0 编程题(24分)
【程序功能】 对于所给的一个自然数n; k& j++)
printf(&quot
提问者采纳
.h&gt,t。2,因为array[j][30]根本不存在,j;.你的array需先初始化为0,才能把有数据的数组元素都输出来;
scanf(& array[i][j] ;%d\ j++)
printf(&\}int found(int a[][30];PAUSE& return 0。所以sum应在第一个for循环语句后重置为0才行,你的array[j][30];
break,&n),不能输出任何东西; printf(&;=
for(j=n&quot.在found函数中; for(i=8 ;
for(j=0 ,应该改为array[i][j]; int array[N][30]={0};
printf(& i& int t=0;#include&n&quot,int n){ int i,否则经过第一次循环后就会一直大于n=500,这样输出语句中的判断才会起作用。#include&n ,sum在每次第二个for循环执行完毕后要重置为0.h&%d&),你去看下数组的定义;
t++,j; j++)
sum+=j;);#define N 100int main(){ int found(int a[][30];),根本找不到你要的数列; for(i=0 ; t=found(P } system(&quot:\ j& k++)
a[t][k-i]=k; i& int i,n。3;
if(sum==n)
for(k=i .首先printf中,n),int n),array[i][j]);
else if(sum&gt,k; i++) {
int sum=0;n)
提问者评价
太感谢了!
其他类似问题
为您推荐:
其他2条回答
n;name&i;j++)
printf(&int&nbsp,&int&n;j&k++)
a[t][k-i]&=&&&&; int&&j;=&nbsp,&j;id&=&nbsp,&(i&nbsp.h&if&n):\n&
else&&t&n); out&nbsp,&);1;n;i;=&
fprintf(k;(k&i&(j& t&&#include&student&&&&&);1]&+=& int&=&
&nbsp,&#define&t;
} } return&&&n){ int&0;&%d&j++)
sum&sum&);array[N][30];);i&nbsp,&=&array[i][j]);
for&your&nbsp,&=&%4d&);&==&(i&input&n)
& int&&lt.out&t;your&array[i][j]&i++) {
sum&&k&=&nbsp,&
printf(&found(int&i&array[i][j]);&nbsp,&nbsp,&0; } fprintf(i;0; for&
for&100int&a[][30];a[][30];& scanf(&-&found(int&=&nbsp,&w&0;0;&nbsp,& return&+&&main(){ int&&N&nbsp,&
fprintf(=&\n&;0;\n&&&(sum&(j&i++) {
for&nbsp.h&found(; FILE*&=&=&Please&=&fopen(&
t++;=&i;;\n& printf(&&(sum&n; for&nbsp,&
a[t][j&&=&int&nbsp#include&j;n);myf2;k;t;%4d&0;}int&nbsp,&j
1、你的算法有点问题 依据你的题意:假设等差数列为a1,a2,.....am,则等差数列的和为sum=a1*m+m(m-1)/2,即程序的算法应该是对上面的表达式求解。2、关于数组应该申明为全局变量或者使用指针,否则在函数中修改的局部变量的值是无法传递给主函数的。3、关于二维数组的打印,应该是一个一个元素打印,即a[i][j]。下面是我修改后的程序,算法不一定最优的,但能实现题目要求。#include&stdio.h&#include&stdlib.h&#define&N&100int&found(int&n);int&a[][N]&=&{0};&//应该申明为全局变量&或者使用指针int&main(){&&int&i,j,n,t;&FILE&*fp&=&NULL;&&printf(&Please&input&n:\n&);&scanf(&%d&,&n);&//搜索&&t=found(n);&&if(NULL&!=&(fp&=&fopen(&myf2.out&,&w&)))&{&&printf(&打开文件失败\n&);&}&&for(i=0&;&i&t&;&i++)&{&&for(j=0&;&j&&N;&j++)&&&{&&&&&&if(0&==&a[i][j])&&&{&&&&&&&}&&&printf(&%d\t&,a[i][j]);&&&fprintf(fp,&%d\t&,a[i][j]);&&}&&printf(&\n&);&&fprintf(fp,&\n&);&}&&fprintf(fp,&我的学号:\n&);&if(fp)&{&&fclose(fp);&&fp&=&NULL;&&}&&return&0;}int&found(int&n){&int&i,j,k,m;&&int&sum=0;&int&t=0;&for(i=1;i&n;i++)&{&&for(j=1;j&=n;j++)&&{&&&sum&=&i*j&+&(i*(i-1))/2;&&&if(sum&==&n)&&&{&&&&for(k=j,m=0;k&=(j+i-1);k++,m++)&&&&{&&&&&a[t][m]=k;&&&&}&&&&t++;&&&&&&&}&&}&}&return&t;}
找错误的相关知识
等待您来回答
下载知道APP
随时随地咨询
出门在外也不愁急!!!求问C语言大神!!!下面的题目为什么答案是4不是5?_百度知道
急!!!求问C语言大神!!!下面的题目为什么答案是4不是5?
baidu&nbsp.jpg" esrc="http.jpg" target="_blank" title="点击查看大图" class="ikqb_img_alink"><img class="ikqb_img" src="http.hiphotos:///zhidao/wh%3D600%2C800/sign=b325faccd358ccbf1be9bd3c29eb07ecacf76d95dda144ac34828d./zhidao/pic//zhidao/wh%3D450%2C600/sign=80f17f96be3eb1354492bfbf932e84e5/9213b07ecacf76d95dda144ac34828d://a.<a href="http://a
提问者采纳
strcoy后p指向ABCD,strlen函数测字符串长度不包括&#92;0,所以结果为4
后面不是还有个h么
strcpy不是简单的字符替换,你可以理解为:原指针p指向defgh&#92;0,新的字符串为ABCD&#92;0,执行strcpy后p指向ABCD&#92;0h&#92;0,字符串碰到第一个&#92;0即结束。
是D后面的/0的原因么?
每个字符串结束都会自动添加&#92;0,我说的是为什么没有h
提问者评价
太给力了,你的回答已经完美的解决了我问题!
其他类似问题
为您推荐:
其他2条回答
中的字符拷贝到第一个参数中;0,是将第二个参数,直到第二个参数到达&#92strcpy。然后,在第一个参数末尾多复制一个&#92
strcpy是不安全的,有可能第一个参数可容纳的字符数量,不足以容纳第二个参数的所有的字符,那样,就会覆盖掉未分配给第一个参数的内存空间。如果这段未分配的空间,被其他程序占用,就会崩溃。
可是后面还有一个h啊
可以用strncpy替换。拷贝n个字符。
对的,就是被&#92;0覆盖了
在strcpy以后,defg变为了ABCD后,strcpy遇到了&#92;0,就不往下走了,这时strcpy还有个动作,就是给第一个参数再添加一个&#92;0。h所在,就变为了&#92;0
可是我记得书上说,加入将四个字符复制到有六个字符的数组中,则前四个是新的,后俩还是保持原来的啊
那是strncpy。拷贝n个字符。然后,得自己添加&#92;0
p是指针,复制后ABCD,注意,没有星号,就是它的长度,为4,没说是string类型,要是的话就是5了
可是ABCD四个还没完啊,后面不是还有h么?
c语言的相关知识
等待您来回答
下载知道APP
随时随地咨询
出门在外也不愁请问各位大神,这题我不会,怎么做呀1+1=?_百度作业帮
请问各位大神,这题我不会,怎么做呀1+1=?
国鸡糜烂8Ww
1+1=2,如果是歌德巴赫猜想的话,谁都做不了,就目前.
其他类似问题
扫描下载二维码> 各位路过的大哥大姐麻烦帮小弟找找错啊题目是这样的:要求编程输出杨辉三角的前十行下面是小弟自己编的程
各位路过的大哥大姐麻烦帮小弟找找错啊题目是这样的:要求编程输出杨辉三角的前十行下面是小弟自己编的程
hanxingawr & &
发布时间: & &
浏览:572 & &
回复:5 & &
悬赏:0.0希赛币
各位路过的大哥大姐麻烦帮小弟找找错啊!!题目是这样的:要求编程输出杨辉三角的前十行 &
下面是小弟自己编的程序,在TC2.0上编译执行后前面8行都是对的可是后面两行就出错了。望各位大神指点一二,小弟不胜感激。哦,对了那个由于小弟是个新人加菜鸟囊中实在羞涩,这给分少了各位别介啊!#include&stdio.h&int main(){ int a[10][10]={1}; int n,m; int combition(int x); printf(&\n&); printf(&%3d\n&,a[0][0]); for (n=1;n&=9;n++) {
printf(&\n&);
for (m=0;m&=n;m++)
a[n][m]=1;
a[n][m]=combition(n)/(combition(n-m)*combition(m));
printf(&%3d
&,a[n][m]);
} } return 0;}int combition(int x){ & int i,z;
z=1; & for (i=1;i&=x;i++)
z=z*i; & return(z);}
  C/C++ code  //按如下格式打印杨辉三角形的前MAXN行。
1 5 10 10 5 1
#include &stdio.h&
#define MAXN 68
unsigned __int64 y[MAXN][MAXN];
void main() {
printf(&1\n&);
printf(&1 1\n&);
y[1][0]=1ui64;y[1][1]=1ui64;
for (i=2;i&MAXN;i++) {
y[i][0]=1ui64;printf(&1 &);
for (j=1;j&=i-1;j++) {
y[i][j]=y[i-1][j-1]+y[i-1][j];
printf(&%I64u &,y[i][j]);
y[i][i]=1ui64;printf(&1\n&);
//1 4 6 4 1
//1 5 10 10 5 1
//1 6 15 20 15 6 1
//1 7 21 35 35 21 7 1
//1 8 28 56 70 56 28 8 1
//1 9 36 84 126 126 84 36 9 1
8 80 80 896 00
12 896 80 80 8 6
67 1hanxl2013 & &
& & (0)(2)我觉得作为一个杨辉三角,还是用+来做的好。你用乘容易导致数据丢失。  C/C++ code  #include&stdio.h&
int main()
int a[10][10]={1};
int combition(int x);
printf(&\n&);
printf(&%3d\n&,a[0][0]);
for (n=1;n&=9;n++)
for (m=0;m&=n;m++)
if (m==0||m==n)
a[n][m]=1;
a[n][m] = a[n-1][m-1] + a[n-1][m];
a[n][m]=combition(n)/(combition(n-m)*combition(m));
printf(&%3d &,a[n][m]);
printf(&\n&);
hanxlei & &
& & (0)(0)TC 2.0是16位编译器,应该是整数溢出了吧,将所有的int改为long试一试。
hanxiucaoye & &
& & (0)(0)问题解决了?迟了
hanxinzhe & &
& & (0)(0)hanxioaoa & &
& & (0)(0)
本问题标题:
本问题地址:
温馨提示:本问题已经关闭,不能解答。
暂无合适的专家
&&&&&&&&&&&&&&&
希赛网 版权所有 & &&

我要回帖

更多关于 c语言教程 的文章

 

随机推荐