當前位置:編程學習大全網 - 編程軟體 - 初學C語言壹道簡單的C語言編程題~我的做的哪有毛病?

初學C語言壹道簡單的C語言編程題~我的做的哪有毛病?

幫妳改了壹半,改不下去了,給妳說壹下妳的問題吧:

壹、函數結構

int main()

{ //函數基本格式 int main() { } , 括號要緊跟main()之後 妳這裏少壹個{

int i,j,a,b,t,q;

二、10的i次方

j=10^i; 這不能表示10的i次方 , 它表示10與i進行異或

想實現10的i次方可以這樣:

j=1;

for(i=1;i<=5;i++)

{

j *= 10 ; //j每次乘10,可達到效果,循環前j賦值為1

三、if語句

if(a>=0&&a<=99999) 成立做數據處理,如果輸入的數據不符號條件呢?按妳的程序,就會直接運行到

b=i;

printf("%d\n",b); 這裏來了。這應該不是妳所希望的吧

所以,加個else {

printf("input error\n");

return -1;

}

四、最後,妳的程序代碼想取每壹位並輸出

for(;b>=1;b--)

{

//q=a/10^(b-1); //這裏同樣存在前面的問題,因為前面j已經乘到了10的5次方,這裏就做整除好了

j /= 10 ;

q=a/j ;

a %= j ; //a取余

printf("%d",q);

}

修改後的完整代碼

#include <stdio.h>

int main()

{

int i,j,a=-1,b,t,q;

scanf("%d",&a);

if(a>=0&&a<=99999)

{

j=1;

for(i=1;i<=5;i++)

{

j *= 10 ;

t=a/j;

if(t==0)

break;

}

}

else

{

printf("input error\n");

return -1;

}

b=i;

printf("%d\n",b);

for(;b>=1;b--)

{

j/=10 ;

q=a/j ;

a %= j ;

printf("%d",q);

}

printf("\n");

return 0;

}

  • 上一篇:電腦串口與施耐德SR2 B121BD通訊故障怎麽辦
  • 下一篇:vc++2010 winform編程,給各個按鈕關聯快捷鍵
  • copyright 2024編程學習大全網