Ⅰ c語言程序改錯
第一,min函數的形參a和b必須加上類型符。
第旦廳二,scanf兩個%d之間不能有逗悔裂號。
int min(int a,int b)
{int c;
c=a>b?b:a;
return c;}
void main()
{int x,y;
printf("please input x&y:"模前隱);
scanf("%d%d",&x,&y);
printf("%d",min(x,y));}
Ⅱ c語言:程序改錯
#include<stdio.h>
unsigned*f(unsigned模絕num)
{
unsigneds=1,*p;
p=&s;//錯,s和指針p不是一個類型,因此不能直接賦值。
do
{
s=s*(num%10);
num/=10;//num/10這個表達式是沒有錯,但是這個表達式不會改變num的值,因此會形成死循環。
}while(num);
returnp;
}
voidmain()
{
unsignedx,*p;
printf("inputx=");
scanf("%d",&x);
p=f(x);
printf("%d ",*p);//錯,宴判如果此處為p的話,則輸出的是指旦祥姿針指向的變數的地址,使用*p才能輸出指針指向的變數值
getchar();
}
Ⅲ C語言程序改錯
/*給你改好了,
注釋都在代源培碼里*/
#include
<stdio.h>
#include
<string.h>
#include
<time.h>
#include
<stdlib.h>
struct
CARD
{
char
suit[10];
char
face[10];
};
void
main()
{
char
*Suit[]={"Spades","Hearts","Clubs","Diamonds"};
char
*Face[]={"A","雹灶唯2","3","4","5","6","7","8","9","10","Jack","Queen","King"};
int
i,j;
struct
CARD
card[52],temp;
for(i=0;i<52;i++)
{
/*當辯耐0<=
i
<=
12時,i/13(i除以13)的值都是0,也就是將suit[0]的
值復制給card[0].suit*/
strcpy(card[i].suit,Suit[i/13]);
strcpy(card[i].face,Face[i%13]);
//這里估計你是寫錯了吧,
應該是card[i].face
}
srand(time(NULL));
for(i=0;i<52;i++)
{
j=rand()%52;
temp=card[i];
card[i]=card[j];
card[j]=temp;
}
for(i=0;i<52;i++)
printf("%10s%10s\n",card[i].suit,card[i].face);
getchar();
}
Ⅳ C語言程序改錯
有錯誤的地方我已經注釋出來了
#include
<stdio.h>
#include
<string.h>
void
f(char
*str)
{
char
*p,*q,*r,c;
/櫻段檔*--用選擇排序法對字元串str中字燃飢符按從小到大排序。找出以下程序段中的錯誤--*/
for(p=str;*p;p++)
{
for(r=p,q=p+1;*q;q++)
if(*r>*q)
/***********************/脊亂
r=q;
if(r!=p)
{
c=*r;
*r=*p;
*p=c;
}
}
puts(str);
for(p
=
str;*p;p++)
{
/***********************/
if(*p
==
*(p+1))
{
strcpy(p,p+1);
p--;
}
/***********************/
}
}
void
main()
{
char
s[50];
int
number=0;
printf("\nPlease
enter
a
string:\n");
gets(s);
f(s);
printf("\n%s\n",s);
}
運行過程:
Ⅳ C語言編寫程序改錯。。
#include<stdio.h>
main()
{
int a[2][3]={{1,2,3},{4,5,6}},b[3][2];
int i,j;
for(i=0;i<2;i++)
for(j=0;j<正燃3;j++)
b[j][i]=a[i][j];
printf("\n"宴扒);
for(i=0;i<舉祥虛3;i++)
{
for(j=0;j<2;j++)
printf("%d",b[i][j]);
printf("\n");
}
}
Ⅵ C語言程序改錯怎麼做
如果是等考的話,錯誤一般在*******found******處,一般的話就是首先編譯器查錯,面對小型的程序一般就可以了,如果是邏輯錯誤
那就要看你的功底進行人工糾錯了。
打字不易,如滿意,望採納。
Ⅶ C語言編程改錯
#include<stdio.h>
#include<math.h>
#include"math.h"
floatfun(intn)
{
inti=0,sum=0;
floats=2.0f;
for(i=1;i<=n;i++)
{
sum=沖咐敗sum+散顫i;
if(sum==1)continue;
printf("(1+..%d)+1=%d
",簡羨i,sum+1);
s=s/(sum+1);
printf("%0.16f
",s);
}
returns;
}
intmain()
{
fun(10);
return0;
}
Ⅷ C語言程序改錯
你的程序可以運行,沒什麼問題呀。
#include<stdio.h>
voidinputArray(inta[],intlen){
intindex;
for(index=0;index<len;++index){
scanf("%d",&a[index]);
}
}
voidsortArray(inta[],intlen){
intindex;
for(index=0;index<len;++index){
intmax=index;
for(intcursor=max+1;cursor<len;++cursor){
if(a[max]<a[cursor]){
max=cursor;
}
}
if(max!=index){
inttemp=a[index];
差游a[index]=a[max];
a[max]=temp;
}
}
}
intcheckArray(inta[],intlen){
intindex,curror=a[0];
for(index=輪鋒1;index<len;++index){
if(curror!=a[index]){
curror=a[index];
}else{
return0;
}
}
臘慶晌return1;
}
doubleaverage(inta[],intlen){
intsum=0;
intindex;
for(index=0;index<len;++index){
sum+=a[index];
}
return((double)sum/len);
}
intmain(){
inta[20]={
0
};
intlen=sizeof(a)/sizeof(int);
inputArray(a,len);
sortArray(a,len);
if(checkArray(a,len)){
doubleave=average(a,len);
intindex;
for(index=0;index<len;++index){
if(a[index]<ave){
printf("%d",a[index]);
}
}
}else{
printf("存在重復數值! ");
}
return0;
}