Ⅰ c语言程序改错题
您好,我是软件之家的♂北极熊熊,很高兴为您解答。
正确代码如下:
#include"stdio.h"
void main()
{
int i;
double item,sum=0.0,flag=1.0,numerator=1.0,denominator=1.0;
for(i=1;i<=100;i++)
{
item=flag*numerator/denominator;
sum=sum+item;
flag=-flag;
numerator=numerator+3;
denominator=denominator+1;
}
printf("sum=%f\n",sum);
}
你错在于numerator,flag,denominator这三个变量选取的类型,应该是double型,
这样item的结果才是double型,而要求前100项之和,for循环应该是100次。
如满意,谢谢五星采纳~~~~~
Ⅱ [求修改] C语言程序设计题
typedef struct z1 /*定义数据结构*/
{
char no[11];
char name[15];
int score[N];
float sum;
float average;
int order;
struct z1 *next;
}STUDENT;
中的STUDENT是z1型的结构变量,而且头文件中不要定义变量。所以上面结构需要改为:
typedef struct STUDENT /*定义数据结构*/
{
char no[11];
char name[15];
int score[N];
float sum;
float average;
int order;
struct z1 *next;
};
否则则需要将下面所有函数原型中的STUDENT改为z1
Ⅲ C语言程序改错题啊,急的!在线等
#include <stdio.h>
void main( )
{
int lower, upper;
double celsius, fahr; /* 定义2个double型变量,celsius表示摄氏度,fahr表示华氏度 */
lower = 30; /* 变量 lower 给定转换范围的下限 */
upper = 40; /* 变量 upper 给定转换范围的上限 */
printf("fahr celsius\n"); /* 显示表头 */
/* 温度转换 */
for (fahr = lower;fahr <= upper;fahr ++) //是分号不是逗号
{
celsius = 5.0 /9.0 * (fahr - 32.0); //这是关键5\9是整形不是浮点形
printf("%3.0f %6.1f\n", fahr, celsius);
}
}
Ⅳ C语言程序改错题
#include <stdio.h>
int main (void){
int a,b,c,max;
int t;
printf (""请输人3个整数: ");
scanf ("%d%d%d" , &a ,&b,&c);
if (a<b);
{t=a; a=b; b=t; }/*t没有定义*/
if (a<c)
{t=a; a=c; c=t; }
if(b<c)
{ t=b; b=c; c=t;}
printf("由大到小顺序为:%d %d %d " ,a,b,c);
return 0;
}
注意黑体
#include <stdio.h>
int main (void){
int a,b,c,max;
printf (""请输人3个整数: ");
scanf ("%d%d%d" , &a ,&b,&c);
if (a<b);
{max=a; a=b; b=max; }
if (a<c)
{max=a; a=c; c=max; }
if(b<c)
{ max=b; b=c; c=max;}
printf("由大到小顺序为:%d %d %d " ,a,b,c);
return 0;
}
注意黑体
后一个更精简
Ⅳ c语言程序改错题,急!!!!!!
1.
#include "stdio.h"
#include "conio.h"
#include "math.h"
void main()
{
int a[][5]={{1,2,3,4,-5},{3,5,-2,4,2},{4,1,2,3,-2},
{1,3,-2,4,6},{2,2,0,7,4}} ;
int i,k,max,sub,temp;
printf("交换之前,输出\n");
for(i=0;i<5;i++)
{
for(k=0;k<5;k++)
{
printf("%4d",a[i][k]);
}
printf("\n");
}
for(i=0;i<=4;i++)
{
max=abs(a[i][0]);
sub=0;
for(k=1;k<5;k++)
{
if(abs(a[i][k])>max)
{
max=abs(a[i][k]);
sub=k;
}
}
temp=a[i][i];
a[i][i]=max;
a[i][sub]=temp;
}
printf("交换之后,输出\n");
for(i=0;i<=4;i++)
{
for(k=0;k<=4;k++)
{
printf("%4d",a[i][k]);
}
printf("\n");
}
}
2.
#include <stdio.h>
#include <stdlib.h>
int main()
{
int a[3][5],x,y,i,j,k;
int max,min;
for(i=0;i<3;i++)
{
for(j=0;j<5;j++)
{
scanf("%d",&a[i][j]);
}
}
for(i=0;i<3;i++)
{
max=a[i][0];
y=0;
for(k=1;k<5;k++)
{
if(max<a[i][k])
{
y=k;
max=a[i][k];
}
min=a[i][y];
x=i;
for(k=0;k<3;k++)
{
if(min>a[k][y])
{
x=k;
min=a[k][y];
}
}
if(i==x)
{
printf("a[%d][%d]=%d is andian\n",x,y,a[x][y]);
}
}
}
return 1;
}
Ⅵ c语言程序修改题
这里s是数组(char s[ ])的名字,p是指针变量。
在数组中,数组的名字表示数组首地址的常量,所以这里数组名等同于&s[0]。
p作为指针,里面存放的是地址,所以p=s,就相当于p=&s[0];。是将s的首地址赋值给了p指针。之后p++,就可以依次取到数组所有元素的地址。
而*p指的是p指向的地址的那个值。如果想给*p赋值,首先p要有值(也就是p必须指向一个地址)。如上面,p=s后p就指向s[0]的地址。如果继续写*p='a';就是将字符'a'赋值给了s[0]的地址。s[0]的值就是'a'。
所以这里不能写*p=s。
注意:虽然p和s都可以表示一个地址,但p是指针值可变,s是常量不可变,p可以写p++,s++就是错的。
定义函数是括号里的参数就是形参,比如上代码中void fun(char s[],int n)这里s,n就是形参。
当你调用这个函数fun(s,n);这里的s,n就是实参。
Ⅶ C语言程序改错题改对了两个错但还有一个错而且程序不能运行可以得几分
#include<stdio.h>//加#
voidfun(char*s)
{inti,j;
for(i=j=0;s[i]!='