c語言上機改錯題
Ⅰ 一道c語言上機改錯題
#include <conio.h>
#include <stdio.h>
#define N 20
/***********************found*************************/
void fun (int *a,int n)
{
int I,m,t,k;
for(I=0;I<n;I++)
/**********************found**************************/
{m=0; //加括弧
for(k=I+1;k<n;k++)
if(a[k]>a[m])
m=k;
t=a[I];
a[I]=a[m];
a[m]=t;
}
}
main()
{
int b[N]={11,5,12,0,3,6,9,7,10,8};
int n=10,i;
for(i=0;i<n;i++)
printf("%d",b[i]); //*************************printf
printf("\n"); //printf*************************)
}
Ⅱ C語言改錯題 求講解
void fun(double a,b,double x,y)
改成 void fun(double a,doubleb,double* x,double* y)
Ⅲ 一道C語言上機改錯題
錯誤不是double,float的問題,是你在函數定義的時候根本沒有返回值,在函數體中卻有return s語句
return s後面缺「;」
Ⅳ C語言程序改錯題
修改後的C程序如下:
#include <stdio.h>
int main()
{
int x, y, r1, r2;
scanf("%d%d", &x, &y);
if(x == 0 || y == 0)
{
printf("input error
");
}
else
{
if(x > y)
{
r1 = x / y;
r2 = x % y;
}
else
{
r1 = y / x;
r2 = y % x;
}
}
printf("商=%d,余數=%d
", r1, r2);
return 0;//這條語句不能少
}
運行測試:

Ⅳ 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);
}
Ⅵ c語言上機 改錯
#include <stdio.h>
double fun( int m )
{
double t = 1.0;
int i;
for( i = 2; i <= m; i++ )
/**********found**********/
t += 1.0/k;//////t+=1.0/m
/**********found**********/
return t;
}
main()
{
int m;
printf( "\nPlease enter 1 integer number:" );
scanf( "%d", &m );
printf( "\nThe result is %lf\n", fun( m ) );
}
Ⅶ 求解一道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語言程序改錯題
答:改錯如下所示,在程序錯誤部分有提示。
#include <stdio.h>
int main (void){
int a,b,c,max;//第一處錯誤,max定義未使用,t未定義卻使用了。有兩種解決辦法,將下面t出現的地方用max代替,或者重新定義t,取消對max的定義。
printf (""請輸入3個整數: ");
scanf ("%d%d%d" , &a ,&b,&c);
if (a<b);//第二處錯誤,if語句後有對應的操作,不能出現分號,否則會變成空語句,對應的操作也不會執行。此處刪除分號,即可。
{t=a; a=b; b=t; }//第三處錯誤,t未定義,建議替換成max
。
if (a<c)
{t
=a; c=a
; c=t; }//第四處錯誤,t未定義,還有第二個語句應改為a=c
。
if(b>c)//第五處錯誤,按降序排序,判斷條件應改成b<c
。
{ t
=b; b=c; c=t
;}//第六處錯誤,t未定義,建議用max替換。
printf("由大到小順序為:%d %d %d " ,a,b,c);
return 0;
}
Ⅸ c語言程序改錯題
主函數中有錯誤。
第14行調用aver函數是,第三個參數在函數定義中是指針變數,而你在調用的時候卻給了一個整型變數count;
所以需要將count改為指針型並申請空間。
main()
{
int x[]={0,12,33,-9,-5,27,80,0,54,63};
int* count=new int;//(如果不支持C++,需要用malloc函數分配)
double av;
av=aver(x,10,count);
printf("count: %d\naverage: %.2f\n",count,av);
}
運行結果是
count: 3671976
average: 25.00
Ⅹ C語言,上機改錯,求大神
Main應該是main,而且還有返回值類型和括弧,可以寫成voidmain()。但是這種格式對於某些編譯器還是會產生警告。
c=4.0後應該有一個「;」printf函數後面也是
voidmain()
{
floata,b,c,v;
a=2.0;b=3.0;c=4.0;
v=a*b*c;
printf("%f ",v);
}
對於一些較新的編譯器,建議使用這種方式:
intmain()
{
floata,b,c,v;
a=2.0;b=3.0;c=4.0;
v=a*b*c;
printf("%f ",v);
return0;
}
