Ⅰ c語言改錯題
改錯,並經實際運行,結果如下圖:
#include<conio.h>
#include<stdio.h>
//intfound(inta[10][30],intn)//錯誤,彈出錯誤[Error]
intfound(inta[10][30],intn)//改錯
{
inti,j,s,k,x;
//for(i=0,k=1;k<=n;k++)//修改
i=0;//此處修改,但不算錯誤
for(k=1;k<=n;k++)
{
//s=1;//錯誤
s=0;//改錯,累加器,初始值為0
x=k;
for(;x<n;x++)
{
s+=x;
if(s>=n)break;
}
if(s==n)
{
//for(j=0;k+j<=x;j++)//錯誤,丟失最後1個元素
for(j=0;k+j<=x;j++)//改錯
a[i][j]=k+j;
i++;
}
}
returni;
}
intmain()
{
inta[10][30]={0};
inti,j,n,m;
printf("n=");
//scanf("%d",&n);錯誤
scanf("%d",&n);//改錯:n-->&n
m=found(a,n);
if(m>0)
{
printf("%dserials
",m);
for(i=0;i<m;i++)
{
for(j=0;a[i][j]!=0;j++)
printf("%4d",a[i][j]);
printf("
");
}
}
else
printf("notfound
");
getch();
return0;
}
Ⅱ 求C語言改錯題
1,給定程序MODI1.C中函數fun的功能是:根據整型形參m,計算如下公式的值。
1
1
1
1
y
=
-------
+
---------
+
---------
+
……
+
-------
100*100
200*200
300*300
m*m
例如,若m
=
2000,則應輸出:
0.000160。
請改正程序中的語法錯誤,使它能計算出正確的結果。
注意:不要改動
main
函數,不得增行或刪行,也不得更改程序的結構!
#include
<stdio.h>
/************found************/
fun
(
int
m
)/*改為double
fun
(int
m)*/
{
double
y
=
0,
d
;
int
i
;
/************found************/
for(
i
=
100,
i
<=
m,
i
+=
100
)/*改為for(
i
=
100;i
<=
m,;i
+=
100
)*/
{
d
=
(double)i
*
(double)i
;
y
+=
1.0
/
d
;
}
return(
y
)
;
}
main(
)
{
int
n
=
2000
;
printf(
"\nThe
result
is
%lf\n",
fun
(
n
)
)
;
}
2,給定程序MODI1.C中
fun
函數的功能是:分別統計字元串中大寫字母和小寫字母的個數。
例如,
給字元串
s
輸入:AAaaBBb123CCccccd,則應輸出結果:upper
=
6,
lower
=
8。
請改正程序中的錯誤,使它能計算出正確的結果。
注意:不要改動
main
函數,不得增行或刪行,也不得更改程序的結構!
#include
<stdio.h>
/**********found**********/
void
fun
(
char
*s,
int
a,
int
b
)/*改為void
fun
(
char
*s,
int
*a,
int
*b
*/)
{
while
(
*s
)
{
if
(
*s
>=
'A'
&&
*s
<=
'Z'
)
/**********found**********/
*a=a+1
;/*改為*a=*a+1
;*/
if
(
*s
>=
'a'
&&
*s
<=
'z'
)
/**********found**********/
*b=b+1;/*改為
*b=*b+1;*/
s++;
}
}
main(
)
{
char
s[100];
int
upper
=
0,
lower
=
0
;
printf(
"\nPlease
a
string
:
"
);
gets
(
s
);
fun
(
s,
&
upper,
&lower
);
printf(
"\n
upper
=
%d
lower
=
%d\n",
upper,
lower
);
}
3,給定程序MODI1.C中函數fun的功能是:根據整型形參m的值,計算如下公式的值。
1
1
1
t
=
1
-
-----
-
-----
-
……
-
-----
2*2
3*3
m*m
例如,若
m
中的值為:
5,則應輸出:
0.536389。
請改正程序中的錯誤,使它能得出正確的結果。
注意:不要改動main函數,不得增行或刪行,也不得更改程序的結構!
#include
<stdio.h>
double
fun
(
int
m
)
{
double
y
=
1.0
;
int
i
;
/**************found**************/
for(i
=
2
;
i
<
m
;
i++)/*for(i
=
2
;
i
<=
m
;
i++)
*/
/**************found**************/
y
-=
1
/(i
*
i)
;/*
y
-=
1.0
/(i
*
i)
;
*/
return(
y
)
;
}
main(
)
{
int
n
=
5
;
printf(
"\nThe
result
is
%lf\n",
fun
(
n
)
)
;
}
4,給定程序MODI1.C中函數fun的功能是:從s所指字元串中刪除所有小寫字母c。
請改正程序中的錯誤,使它能計算出正確的結果。
注意:不要改動
main
函數,不得增行或刪行,也不得更改程序的結構!
#include
<stdio.h>
void
fun(
char
*s
)
{
int
i,j;
for(i=j=0;
s[i]!='\0';
i++)
if(s[i]!='c')
/************found************/
s[j]=s[i];/*
s[j++]=s[i];*/
/************found************/
s[i]='\0';/*
s[j]='\0';*/
}
main()
{
char
s[80];
printf("Enter
a
string:
");
gets(s);
printf("The
original
string:
");
puts(s);
fun(s);
printf("The
string
after
deleted
:
");
puts(s);printf("\n\n");
}
可以了吧
Ⅲ c語言題目求改錯
#define Count 100
#include<stdio.h>
int getmaxlocation(int arr[],int n)
{
int loc=0,i;
for(i=1;i<n;i++)
{
if(arr[i]>arr[loc])
loc=i;
}
return loc;
}
void sort(int arr[],int n)
{
int i,j,t;
for(i=0;i<n-1;i++)
{
for(j=0;j<n-1-i;j++)
{
if(arr[j]<arr[j+1])
{
t=arr[j+1];
arr[j+1]=arr[j];
arr[j]=t;
}
}
}
}
int main()
{
int arr[Count],n,i,loc;
printf("請輸入數組元素個數(<=%d)",Count);
scanf("%d",&n);
printf("請輸入%d個整數:",n);
for(i=0;i<n;i++)
scanf("%d",&arr[i]);
loc=getmaxlocation(arr,n);
printf("數組最大值位於下標%d處\n",loc);
sort(arr,n);
printf("降序排序後的數組:");
for(i=0;i<n-1;i++)
printf("%d ",arr[i]);
printf("%d\n",arr[n-1]);
return 0;
}
Ⅳ c語言習題改錯
#include<stdio.h>
#include<math.h>
intmain()
{
doublex1,x0,i;
scanf("%lf",&x1);
x0=x1;
x1=cos(x0);
for(i=x0-x1;fabs(i)>0.0000001;)
{
x0=x1;
x1=cos(x0);
i=x0-x1;
}
printf("x=%lf",x0);
}
Ⅳ C語言求改錯
#include"stdio.h"
intmain(intargc,char*argv[]){
inti=0,k=0;
chara[80];
while((a[i]=getchar())!=' '&&i<80)
i++;
a[i]='