Ⅰ 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]!='