當前位置:首頁 » 編程語言 » c語言題目求改錯
擴展閱讀
webinf下怎麼引入js 2023-08-31 21:54:13
堡壘機怎麼打開web 2023-08-31 21:54:11

c語言題目求改錯

發布時間: 2023-02-11 08:04:44

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]='';
for(k=i=0;a[i];i++)
if(a[i]>='0'&&a[i]<='9')
if(((k*=10)+=a[i]-'0')<0){
printf("Numberoutofrange,exit... ");
return0;
}
printf("Theresultis%d ",k);
return0;
}

運行樣例:

Ⅵ 求解一道C語言改錯題

#include<stdio.h>

structbook

{

floatprice;//價格

charname[20];//名字

};

intmain(void)

{

structbookmyBook={5.6,"theworldisflat"};

printf("bookname=%s,bookprice=%f",myBook.name,myBook.price);

return0;

}


Ⅶ C語言改錯題大神求解

voidfun(chars[],chart[])
{
inti,k,n;
chartemp;
n=0;
for(i=0;s[i]!='';++i)
if(i%2==1)//修改2,考常識,了解==和=區別
for(k=0;k<i;++k)
{
t[n]=s[i];
n++;
}
else
t[n++]=s[i];//修改3,考邏輯,n沒有自加
t[n]='';
for(i=0;i<(n+1)/2;i++)//修改4,考數學,n-1改成n+1取整奇數會少1
{
temp=t[i];
t[i]=t[n-1-i];
t[n-1-i]=temp;
}
}
voidmain(void)//這個地方不一定要改,老編譯器允許這種不好的風格
{
chars[20],t[100];
printf(" Pleaseenterstrings:");
gets(s);
fun(s,t);//修改1,考基礎,用時不要加[]
printf("Theresultis:%s ",t);
}

Ⅷ 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語言題目求改錯

#include<stdio.h>
intfun(inta[][4],intn)//<==========
{
intk,i,j;
for(i=0;i<n;i++)
for(j=0;j<=i;j++)
{
k=a[i][j];
a[i][j]=a[j][i];
a[j][i]=k;
}
}
main()
{
inta[4][4],i,j;
for(i=0;i<4;i++)
for(j=0;j<4;j++)
{
scanf("%d",&a[i][j]);
}
fun(a,4);
for(i=0;i<4;i++)
{
for(j=0;j<4;j++)
{
printf("%d",a[i][j]);
}
printf(" ");
}
}

Ⅹ c語言改錯題

這個c語言問題原因是舊C編譯器中,要求函數max必須先聲明才能定義和使用,可是在上文先使用max函數而在下文才定義,就和先使用變數再定義一樣會報錯error。

原代碼在新編譯器中是可以用的,但是會報警告warning

#include <stdio.h>

int max(int x,int y);

void main()

{

int a,b,c;

scanf("%d,%d",&a ,&b);

c=max(a,b);

printf("max=%d ",c);

}

int max(x,y)

int x,y;

{int z;

z=y;

if(x>9) z=x;

return (z);

}