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

c語言反轉小程序出錯

發布時間: 2022-03-01 12:16:53

Ⅰ 我這個c語言小程序為什麼出錯,講什麼發生沖突

main中函數參數輸入不匹配,a[LEN]是數組a中的最後一個元素,而函數的形參是數組,也就是說指針!
len的求法也不對,len永遠是1,因為a是指針,永遠是四個位元組
樓主c基礎有待加強!

Ⅱ C語言 小程序 錯誤看不懂!

這是scanf()命令的特點,你不能這樣寫代碼
你輸入的字元一直在緩存中,沒有人去讀它,所以,會scanf("
%f",&a)
一直為0,陷入死循環了。
if(scanf("
%f",&a)
==
1);
這句改成這樣:
int
flag=0;
//提前定義一個變數
flag=scanf("%f",&a);getchar();
//用getchar()濾掉輸入的字元(非數字類字元)
if
(
flag
==
1
)
;

Ⅲ c語言小程序錯誤

intpan(charpan){//判斷輸入計算符子函數
intjie;
charpanan;

panudan=pan;

if(panan=='+'){
jie=1;
}
elseif(panan=='-'){
jie=2;
}
elseif(panan=='*'){
jie=3;
}
elseif(panan=='/'){
jie=4;
}
returnjie;
}

增加一個賦值語句,panudan=pan;

Ⅳ C語言用指針處理字元反轉小程序出錯原因

首先你得為指針分配空間才能使用:
str = (char*)malloc(MAXNsdgsdgsgs);
newstr= (char*)malloc(len+1);

其次要對指針進行保護:
char *p = newstr;

再則,交換值不是交換地址:
*p++ = *str--;

改好的代碼如下,請參考:

#include "stdio.h"
#include "stdlib.h"
#include "conio.h"
#include "string.h""

#define MAXN 50
main()
{
char *str,*newstr;
int len=0,i;
str = (char*)malloc(MAXNsdgsdgsgs);
gets(str);
puts(str);
//newstr="";
len=strlen(str);
newstr= (char*)malloc(len+1);
str+=len-1;
char *p = newstr;
for (i=1;i<=len;i++)
{
*p++ = *str--;
}
*p='\0';
puts(newstr);
getch();
}

Ⅳ C語言字元反轉程序運行 段錯誤

void strRev(char *s) {
//char temp, *end = (char*) malloc(sizeof(char)); //同ERROR1
char temp, *end ;
end = s + strlen(s) - 1; //這里end指向了s的尾部,所以,前面分配的空間丟失,造成內存泄露事件
while(end > s)
{
temp = *s;
*s = *end;
*end = temp;
--end;
++s;
}
}
int main(){
//char *p=(char*) malloc(sizeof(char)); ERROR1 sizeof(char)==1 ,只分配了一個位元組空間,看下文分配的空間又沒
有用到,所以不要用malloc了
/**
char *p;
p ="abc"; //錯誤原因:這里是將常量的地址給了p, 常量數據存儲在一個只讀的空間里,不能對其進行數據變動
**/

char p[32];
strcpy( p , "abc" );
printf("%s\n", p);
strRev(p);
printf("%s\n", p);
return 0;
}

Ⅵ 大神這個c語言小程序 運行結果怎麼會出錯呢幫忙看看,小弟感激不盡

把min()這個函數放到main()前面去或者在main()前面放上int min(int x,int y);

Ⅶ 一個c語言小程序錯誤。。。

應該是你沒按照自己規定的格式輸入

在輸入時2,3之間要有逗號

或者去掉scanf("%d,%d",&a,&b);

%d之間的逗號 然後輸入2 3 中間不加逗號

Ⅷ 在線求助,c語言的一個小程序錯誤

stanf("%d,%d,%d",a,b,c,);

應該改為 scanf("%d,%d,%d",&a,&b,&c);
if else(b>c) printf("sum=%d",b);
應該改為else if(b>c&&b>a) printf("sum=%d",b);
else printf("sum=%d,c);
應該為 else printf("sum=%d",c); 少半個分號

#include <stdio.h>
void main()
{
int a,b,c;
printf("請輸入三位不相等的整數,我們將為您求出最大值:\n");
scanf("%d%d%d",&a,&b,&c);
if(a>b&&a>c) printf("sum=%d",a);
else if(b>c&&b>a) printf("sum=%d",b);
else printf("sum=%d",c);
printf("\n我厲害吧,哈哈,喜洋洋美羊羊灰太狼。。。\n");
}

試試行不行,輸入字元格式 12 34 45 回車;按照這種輸入~

Ⅸ c語言做了一個倒序輸出小程序總是不對

#include<stdio.h>
int main(){

int i,*p,a[5],swap;
p=a;
printf("請輸入5個數\3\3\3\3\3\n");/*輸入數字*/
for(i=0;i<5;i++)
scanf("%d",(p+i));

for(i=0;i<2;i++)
{
int t;
t=4-i;
swap=*(p+i);
*(p+i)=*(p+t);
*(p+t)=swap;// 按照邏輯應該是*(p+t)

}

for(i=0;i<5;i++)
printf("%d",a[i]);

return 0;
}