c语言视频教程帮我看看这个程序哪里有问题

c语言编写程序,从键盘输入整数 n , 求 e 的值。e=1+1/1!+1/2!+1/3!+..+1/n!  注意:用 double 型数据计算。&br/&这是我做的,帮我看看哪里错了
c语言编写程序,从键盘输入整数 n , 求 e 的值。e=1+1/1!+1/2!+1/3!+..+1/n!  注意:用 double 型数据计算。这是我做的,帮我看看哪里错了
补充:#include &stdio.h&int main(){&double e=1.0;&int i,a,n;&scanf("%d",&n);&for(i=1;i&=n;i++)&{
&for(j=1,a=1;j&=i;j++)&&a=a*i;&&e=e+1.0/a;&}&&& printf("e=%16.10f\n",e); }
不区分大小写匿名
j没有定义int i,j,a,n;
打的时候少打了~~加上了还是错的,肿么办?
相关知识等待您来回答
编程领域专家诸位大神纳!帮偶看看这个程序有什么错误吧!头都想破了 跪求ing_c语言吧_百度贴吧
&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&签到排名:今日本吧第个签到,本吧因你更精彩,明天继续来努力!
本吧签到人数:0成为超级会员,使用一键签到本月漏签0次!成为超级会员,赠送8张补签卡连续签到:天&&累计签到:天超级会员单次开通12个月以上,赠送连续签到卡3张
关注:263,712贴子:
诸位大神纳!帮偶看看这个程序有什么错误吧!头都想破了 跪求ing收藏
编写一个程序,计算-32768~+32767之间任意整数(由键盘输入)中各位奇数的平方和#include&stdio.h&main(){ int x,y;
printf("请输入一个任意整数在-3之间x="); scanf("%d",&x); if(x&32767)
printf("不能大于32767"); if(x&-32768)
printf("不能小于-32768"); else {
int result=0,i;
for(i=0;i&5;i++)
if(x%2!=0)
result+=y*y;
} printf("result%d\n",result);}
我去。最后忘加1个}
登录百度帐号我的游戏推荐游戏
后查看最近玩过的游戏
为兴趣而生,贴吧更懂你。或麻烦C语言高手帮忙看看这个程序 这是我自己写的实现getline函数的功能函数 但输出的结果不是正确的
麻烦C语言高手帮忙看看这个程序 这是我自己写的实现getline函数的功能函数 但输出的结果不是正确的
#include &stdio.h&#include &stdlib.h&#define maxsize 20&br&static ssize_t &mygetline(char **lineptr, size_t *n, FILE *stream){& & & & ssize_t count=0;& & & &&br&& & & & if(*lineptr == NULL)//		free(*lineptr);	{		*n=& & & & 	*lineptr = malloc(*n);	}&br&	if((buf=fgetc(stream))==EOF)	{		return -1;	}		while((buf=fgetc(stream))!=EOF)	{		if(buf==&\n&)		{ & &		 & & count+=1;	 & & 	 & &		}&br&		count++;&br&		*(*lineptr+count-1)=		*(*lineptr+count)=&\0&;				if(*n&=count)		*lineptr=realloc(*lineptr,count*2);	}&br&	}&br&int main(int argc,char *argv[]){	FILE *	char *	size_				fp = fopen(argv[1],&r&);	if(fp == NULL)	{		perror(&fopen()&);		exit(1);	}&br&	linebuf = NULL;	linesize = 0;		while(1)	{		if((n= mygetline(&linebuf,&linesize,fp)) & 0)					printf(&%d\n&,n);		printf(&%s\n&,linebuf);	}		if(linebuf)		free(linebuf);&br&	fclose(fp);	return 0;}&br&&br&
错误1:& 在mygetline中连续使用2次fgetc导致每行首字符无法显示
错误2:& 由错误1间接导致死循环,变更main中while循环退出条件为linesize&=0
问题3:& mygetline返回值与形参size_t *n表示为每行的字节数,意义重复,变更函数返回值为行号
如此即可:
#include &stdio.h&#include &stdlib.h&#define maxsize 20
static size_t& mygetline(char **lineptr, size_t *n, FILE *stream){&&& size_t count=0;&&& static size_t line_no=0;&/*add line number*/&&&&&& if(*lineptr == NULL)/*// free(*lineptr); */&&{&&&&*n=&&&&&& *lineptr = malloc(*n);&&}&&/*if((buf=fgetc(stream))==EOF){ return -1; } Error00: use fgetc twice, the first ch is omitted*/&&while((buf=fgetc(stream))!=EOF)&&{&&&&if(buf=='\n')&&&&{&&&&&line_no++;&&&&&&&&&}&&&&count++;&&&&*(*lineptr+count-1)=&&&&*(*lineptr+count)='\0';&&&&if(*n&=count) *lineptr=realloc(*lineptr,count*2);&&&&&&}&&*n=&/*make sure *n is the real number of char in each line*/&&return line_}int main(int argc,char *argv[]){&&FILE *&&char *&&size_&&&&fp = fopen(argv[1],"r");&&if(fp == NULL) { perror("fopen()"); exit(1); }&&linebuf = NULL;&&linesize = 0;&&while(1)&&{&&&&n= mygetline(&linebuf,&linesize,fp);&&&&if(linesize &= 0)&&&&/*printf("%d\n",n);*/&&&&printf("%d[%3d]: %s\n",n,(int)linesize,linebuf);&&}&&if(linebuf) free(linebuf);&&fclose(fp);&&return 0;}
1,原程序在遇到第一行时就退出,无法读取剩余的行,
2,清空linebuffer
最后完美了一下:
#include &stdio.h&#include &stdlib.h&#include &string.h&#define maxsize 20
static size_t& mygetline(char **lineptr, size_t *n, FILE *stream){&&& size_t count=0;&&& static size_t line_no=0;&/*add line number*/&&&&&& if(*lineptr == NULL)/*// free(*lineptr); */&&{&&&&*n=&&&&&& *lineptr = malloc(*n);&&}&&/*if((buf=fgetc(stream))==EOF){ return -1; } Error00: use fgetc twice, the first ch is omitted*/&&while((buf=fgetc(stream))!=EOF)&&{&&&&if(buf=='\n')&&&&{&&&&&line_no++;&&&&&&&&&}&&&&count++;&&&&*(*lineptr+count-1)=&&&&*(*lineptr+count)='\0';&&&&if(*n&=count) *lineptr=realloc(*lineptr,count*2);&&&&&&}&&*n=&/*make sure *n is the real number of char in each line*/&&return line_}int main(int argc,char *argv[]){&&FILE *&&char *&&size_&&&&fp = fopen(argv[1],"r");&&if(fp == NULL) { perror("fopen()"); exit(1); }&&linebuf = NULL;&&linesize = 0;&&while(!feof(fp))&&{&&&&n= mygetline(&linebuf,&linesize,fp);&&&&/*if(linesize &= 0)*/&&&&/*printf("%d\n",n);*/&&&&printf("%d[%3d]: %s\n",n,(int)linesize,linebuf);&&&&strcpy(linebuf,"");&/*pure the buffer*/&&}&&if(linebuf) free(linebuf);&&fclose(fp);&&return 0;}
的感言:非常感谢
我会继续努力的
其他回答 (1)
debug一下看看,是不是读入了正确的值。
好像不太对,有的地方重复输出
所以看看是哪些重复了
相关知识等待您来回答
编程领域专家谁能帮忙看一下这个C语言程序有错误么,另外求解答,非常感谢。&br/&题目四:编写程序,读入三个整数给a、b、c,然后交换他们中的数,把a中原来的数给b,把b中原来的数给c,把c中原来的数给,然后输出a、b、c。&br/&#include &stdio.h&&br/&main()&br/&{int a,b,c,
谁能帮忙看一下这个C语言程序有错误么,另外求解答,非常感谢。题目四:编写程序,读入三个整数给a、b、c,然后交换他们中的数,把a中原来的数给b,把b中原来的数给c,把c中原来的数给,然后输出a、b、c。#include &stdio.h&main(){int a,b,c,
#include&stdio.h&main() {&int a,b,c,oldC;&scanf("%d%d%d", &a, &b, &c);&oldC=c; c=b; b=a; a=oldC;&printf("a=%d b=%d c=%d", a, b, c);&return 0;}
的感言:当代劳模!所有人都应该向你学习!
相关知识等待您来回答
编程领域专家【求助贴】请帮我看一下这个程序出错的地方原因是什么_c语言吧_百度贴吧
&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&签到排名:今日本吧第个签到,本吧因你更精彩,明天继续来努力!
本吧签到人数:0成为超级会员,使用一键签到本月漏签0次!成为超级会员,赠送8张补签卡连续签到:天&&累计签到:天超级会员单次开通12个月以上,赠送连续签到卡3张
关注:263,712贴子:
【求助贴】请帮我看一下这个程序出错的地方原因是什么收藏
#include &stdio.h&#include &iostream&struct age{};struct student{char name[30];
int score[3] ;int total[3];};int main(){struct student s[3];int i,j,sum=0; for(i=0;i&3;i++){cout&&&按顺序输入第 &&&i&&&个学生信息&&&
scanf(&%d%s%d%d%d&,&s[i].num,s[i].name,&s[i].brithday.year,&s[i].brithday.month,&s[i].brithday.day ); for(j=0;j&3;j++)
scanf(&%d&,s[i].score[j]);
sum=sum+s[i].score[j];
s[i].total= //这一行有错误
[Error] incompatible types in assignment of *int* to *int [3]*}for(j=0;j&3;j++){cout&&&第&&&j+1&&&个学生信息为&&&cout&&&学号:&&&s[j].num&&endl&&&姓名&&&s[j].name&&cout&&&生日&&&s[j].brithday.year&&&年&&&s[j].brithday.month&&&月&&&s[j].brithday.day&&&日&&&
/*cout&&&每科成绩:&;
for(i=0;i&3;i++)
cout&&s[j].score[i];
cout&&&总成绩为:& &&s[j].}return 0;}
有错误的那一行我已经标记出来了,后面是错误提示
int total[3];你定义的是数组,这错了,本该就直接int total....
登录百度帐号我的游戏推荐游戏
后查看最近玩过的游戏
为兴趣而生,贴吧更懂你。或}

我要回帖

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

更多推荐

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

点击添加站长微信