C语言:输入一个十进制整数,将其转换为八进制数输出。不能使用%0,仍然属于%d输出 C语言找错误,求大神

\u7528C\u6216\u8005C++\u7f16\u7a0b\uff0c\u8f93\u5165\u4e00\u4e2a10\u8fdb\u5236\u6b63\u6574\u6570\uff0c\u7136\u540e\u8f93\u51fa\u5b83\u6240\u5bf9\u5e94\u7684\u516b\u8fdb\u5236\u3001\u5341\u516d\u8fdb\u5236\u6570\u3002(\u4e0d\u80fd\u76f4\u63a5\u7528%0\u548c%x\u6765\u8f93\u51fa

\u73b0\u5728\u63d0\u4f9b\u4e00\u4e2a\u53ef\u4ee5\u8fdb\u884c\u5341\u8fdb\u5236\u5230\u4e8c\u8fdb\u5236\u3001\u5341\u516d\u8fdb\u5236\u3001\u516b\u8fdb\u5236\u7684\u8f6c\u6362\u7a0b\u5e8f\uff0c\u540c\u65f6\u5bf9\u4e8e\u8f93\u5165\u7684\u5341\u8fdb\u5236\u6570\u6ca1\u6709\u8981\u6c42\uff0c\u53ef\u4ee5\u662f\u6b63\u6570\u3001\u8d1f\u6570\u3001\u6574\u6570\u548c\u5c0f\u6570\u7b49\u90fd\u53ef\u4ee5\u7684\uff0c\u540c\u65f6\u53ef\u4ee5\u8fdb\u884c\u5341\u8fdb\u5236\u5230\u4e8c\u8fdb\u5236\u5230\u5341\u516d\u8fdb\u5236\u7684\u8f6c\u6362\u7684\uff0c\u6e90\u7a0b\u5e8f\u5982\u4e0b\uff1a
#include
#include
void main()
{
int i=0,n,j,a[20],b[20],k,c=0;
double m,x,d;
printf("\u8bf7\u8f93\u5165\u9700\u8981\u8f6c\u6362\u7684\u6570:");
scanf("%lf",&x);
printf("\u8bf7\u8f93\u5165\u8981\u8f6c\u6362\u6210\u7684\u8fdb\u5236(1<N<=16):");
scanf("%d",&n);
if(x<0)
m=fabs(x);
else
m=x;
k=(int)m;//\u5f3a\u5236\u7c7b\u578b\u8f6c\u6362\uff0c\u53ef\u4ee5\u4f7f\u7528k=(int)m;\u4ee3\u66ff\uff0c\u4ece\u800c\u66f4\u52a0\u7684\u4e00\u76ee\u4e86\u7136
while(k)//\u5224\u5b9a\u9700\u8981\u8f6c\u6362\u7684\u6570\u662f\u5426\u53d8\u4e3a0
{
a[i++]=k%n;//\u53d6\u4f59\uff0c\u8fdb\u884c\u8fdb\u5236\u8f6c\u6362\uff0c\u4f46\u662f\u987a\u5e8f\u4e0e\u6b63\u786e\u503c\u76f8\u53cd
k/=n;//\u8f6c\u6362\u4e00\u4f4d\u4e4b\u540e\u8fdb\u884c\u76f8\u5e94\u7684\u53d8\u5316
}
if(m!=(int)m)//\u9009\u62e9\u6027\u8ba1\u7b97\uff0c\u5982\u679c\u662f\u6574\u6570\u5c31\u4e0d\u7528\u8fdb\u884c\u8fd9\u4e00\u6b65\u7684\u8ba1\u7b97\u4e86\uff0c\u8fd9\u6837\u53ef\u4ee5\u8282\u7ea6\u7a0b\u5e8f\u7684\u8fd0\u884c\u65f6\u95f4
{
d=m-(int)m;//\u53d6\u5c0f\u6570\u90e8\u5206
while(d!=0)
{
b[c]=(int)(d*n);//\u7b97\u6cd5\u4e3a\u00d7N\u53d6\u6574
d=d*n-b[c];
c++;
if(c>=10)
break;//\u4e3b\u8981\u662f\u63a7\u5236\u5c0f\u6570\u540e\u9762\u4e07\u4e00\u51fa\u73b0\u65e0\u9650\u5c0f\u6570\u7684\u65f6\u5019\u597d\u8df3\u51fa\u5faa\u73af\u4ee5\u514d\u51fa\u73b0\u6b7b\u5faa\u73af
}
}
printf("\u8f6c\u6362\u7ed3\u679c\u4e3a:");
if(x<0)
printf("-");
for(j=i-1;j>=0;j--)//\u53cd\u5e8f\u8f93\u51fa,\u5927\u4e8e10\u7684\u6570\u5b57\u8fdb\u884c\u76f8\u5e94\u7684\u53d8\u5316
{
if(a[j]==10)
printf("A");
else
if(a[j]==11)
printf("B");
else
if(a[j]==12)
printf("C");
else
if(a[j]==13)
printf("D");
else
if(a[j]==14)
printf("E");
else
if(a[j]==15)
printf("F");
else
printf("%d",a[j]);
}
if(m!=(int)m)//\u9009\u62e9\u6027\u8f93\u51fa\uff0c\u8fd9\u6837\u53ef\u4ee5\u8282\u7ea6\u8f93\u51fa\u65f6\u95f4\u548c\u7a0b\u5e8f\u7684\u8fd0\u884c\u65f6\u95f4
{
printf(".");
for(j=0;j<c;j++)//\u6b63\u5e8f\u8f93\u51fa
{
if(b[j]==10)
printf("A");
else
if(b[j]==11)
printf("B");
else
if(b[j]==12)
printf("C");
else
if(b[j]==13)
printf("D");
else
if(b[j]==14)
printf("E");
else
if(b[j]==15)
printf("F");
else
printf("%d",b[j]);
}
}
if(c>=10)//\u5982\u679c\u662f\u65e0\u9650\u5c0f\u6570\u5219\u5728\u540e\u4ee5\u7701\u7565\u53f7\u8868\u793a
printf("......");
printf("\n");//\u8f93\u51fa\u6362\u884c\uff0c\u4ee5\u4f7f\u7a0b\u5e8f\u7684\u8f93\u51fa\u7ed3\u679c\u7f8e\u89c2
}

\u4f60\u8fd9\u4e2a\u7a0b\u5e8f\u4e0d\u662f\u5728\u5f00\u73a9\u7b11\u5427\uff0c\u9519\u7684\u5feb\u6ca1\u5bf9\u7684\u4e86,\u7ecf\u8fc7\u6211\u5168\u9762\u6574\u5bb9\u4ee5\u540e\u7a0b\u5e8f\u5982\u4e0b\uff1a
#include //\u5305\u542b\u8f93\u5165\u8f93\u51fa\u51fd\u6570
void main()
{
char a,b,c;
int n =0; //\u53d8\u91cf\u7684\u5b9a\u4e49\u5fc5\u987b\u653e\u5230\u6700\u524d\u9762
printf("\u8bf7\u8f93\u51653\u4f4d\u516b\u8fdb\u5236\u6b63\u6574\u6570: "); //printf\u662f\u8f93\u51fa\u4e00\u53e5\u8bdd\u7684 \u4e0d\u662fscanf
scanf("%c%c%c",&a,&b,&c);
while(a'7' || b'7' || c'7')
{
printf("\u8bf7\u8f93\u5165\u6b63\u786e\u7684\u516b\u8fdb\u5236\u6570");/*\u6b64\u5904\u63a8\u8350\u52a0\u8fd9\u53e5,\u6709\u7684\u4eba\u4e0d\u5c0f\u5fc3\u5bb9\u6613\u8f93\u51658\u548c9\uff0c\u5e94\u8be5\u63d0\u524d\u9884\u9632*/
scanf("%c%c%c",&a,&b,&c);
}
n+=(a-'0')*64;
n+=(b-'0')* 8;
n+=(c-'0');
printf("\u5bf9\u5e94\u7684\u5341\u8fdb\u5236\u6570\u662f\uff1a%d \n",n); //\u8fd9\u4e2a\u5730\u65b9\u5c11\u4e86\u4e00\u4e2a\u5f15\u53f7
}

#include<stdio.h>
#include<string.h>
void main()
{
int a[100],i,j,k,b;
printf("请输入一个十进制整数:");
scanf("%d",&b);
for(i=0;i<100;i++)//方法:除以8取余
if(b!=0)
{
j = b%8;
a[i] = j;
b = b/8;
}
else {a[i]=b;break;}
for(k=i;k>=0;k--)//逆序输出
printf("%d",a[k]);

}
//注:这里采用的方法是除8取余逆序列

这个是输出16以内任意进制的算法
#include "stdafx.h"
#include <windows.h>
#include <stdlib.h>
#include <stdio.h>
char* fn(int n,int count )
{
char hex[16]={'0','1','2','3','4','5','6','7','8','9','A','B','C','D','E','F'};
char result[32]={'0'};
char rst[32]={'0'};
int remainder;
int i=0,j=0;
while(count>0)
{

remainder=count%n;
rst[i]=hex[remainder];
i++;
count=count/n;
}
for(j=0;j<i;j++)
{
result[j]=rst[i-j-1];
}
return result;
}
int main(int argc, char* argv[])
{
int cnt,cn;
char a[32];
printf("输入的整数或者进制数为零表示退出程序\n");
while(1)
{
printf("请输入一个32位范围内整数");
scanf("%d",&cnt);
printf("请输16以内的转换进制");
scanf("%d",&cn);
if(cnt==0||cn==0)
break;
else
{
strcpy(a,fn(cn,cnt));
printf("您输入的整数%d 转换为%d进制的结果为%s\n\n",cnt,cn,a);
}
}
system("pause");
return 0;
}

# include <stdio.h>
void main()
{ int a=1;
int n;
printf("input n:\n");
scanf("%d",&n);
while((a*=8)<n);
a/=8;
while(a!=1)
{ printf("%d",n/a);
n%=a;
a/=8;
}
printf("%d\n",n);
}
能看懂,其它什么数值转换就基本没问题了。

除8取余逆序输出就可以了哈

# include <stdio.h>
void main()
{
int a[10];
int n;
printf("input n:\n");
scanf("%d",&n);
int count=0;
while(n!=0)
{
a[count++]=n%8;
n/=8;
}
while(count)
{
printf("%d",a[--count]);
}
printf("\n");
}
行了

#include <stdio.h>
void pp(int n)
{
int j;
j=n%8;
if(n>=8)
pp(n/8);
printf("%d",j);
}
void main()
{
int i,j;
printf("请输入一个10进制:");
scanf("%d",&i);
pp(i);
}

  • C璇█:杈撳叆涓涓崄杩涘埗鏁存暟,灏鍏惰浆鎹负鍏繘鍒舵暟杈撳嚭銆備笉鑳戒娇鐢%0,浠嶇劧...
    绛旓細include<stdio.h> include<string.h> void main(){ int a[100],i,j,k,b;printf("璇杈撳叆涓涓崄杩涘埗鏁存暟锛");scanf("%d",&b);for(i=0;i<100;i++)//鏂规硶锛氶櫎浠8鍙栦綑 if(b!=0){ j = b%8;a[i] = j;b = b/8;} else {a[i]=b;break;} for(k=i;k>=0;k--)//閫...
  • 杈撳叆涓涓崄杩涘埗鏁存暟,灏嗗畠瀵瑰簲鐨勪簩杩涙暟鐨勫悇浣嶅弽搴,褰㈡垚鏂扮殑鍗佽繘鍒舵暟...
    绛旓細int temp = num & 15; //鍜 1111(浜岃繘鍒) 杩涜涓庤繍绠楋紝寰楀埌鍗佸叚杩涘埗鐨勬渶鍚涓浣銆俰f(temp>9)System.out.println((char)(temp-10+'A')); //澶т簬9鍒欒浆鎹㈡垚鍗佸叚杩涘埗锛屽皢10銆11銆12銆13銆14銆15瀵瑰簲杈撳嚭涓 A銆丅銆C銆丏銆丒銆俥lse System.out.println(temp);num = num >>> 4; ...
  • 鐢C璇█缂栫▼,杈撳叆涓涓崄杩涘埗姝鏁存暟,杈撳嚭鍏跺搴旂殑鍗佸叚杩涘埗鏁存暟銆
    绛旓細// 杈撳叆鍗佽繘鍒舵暟 printf("璇杈撳叆涓涓崄杩涘埗姝f暣鏁: ");scanf("%d", &decimalInput);// 杞崲涓哄崄鍏繘鍒 hexadecimalOutput = decimalInput;printf("鍏跺搴旂殑鍗佸叚杩涘埗鏁存暟涓: %x\n", hexadecimalOutput);return 0;} 杩欐浠g爜棣栧厛閫氳繃`scanf`鍑芥暟鑾峰彇鐢ㄦ埛杈撳叆鐨鍗佽繘鍒舵暟锛鐒跺悗浣跨敤`printf`鍑芥暟鐨刞%x...
  • c璇█闂:杈撳叆涓涓崄杩涘埗鏁,灏鍏惰浆鍖栦负浜岃繘鍒舵暟鍚庡瓨鏀惧湪鏁扮粍涓苟杈撳嚭...
    绛旓細//鍏堝皢璐熸暟杞崲鎴愭鏁 temp=-frequence;//姹傚嚭杩欎釜姝f暟temp鐨勪簩杩涘埗骞跺瓨鏀惧湪pwm_temp涓 transform_data_zhengshu(temp,pwm_temp);//灏嗚繖涓鏁皌emp鐨勪簩杩涘埗pwm_temp鍙栧弽骞惰浆鎹㈡垚鍗佽繘鍒舵暟sum int sum=0;int i=0;for(i=0;i<15;i++){ if(pwm_temp==0)pwm_temp=1;else pwm_temp=0;sum+...
  • C璇█绠鍗曞皬棰樼洰:缂栧啓绋嬪簭,杈撳叆涓涓崄杩涘埗鏁存暟,灏鍏跺彉鎹负浜岃繘鍒跺悗瀛樺偍...
    绛旓細int sign=1;printf("please input the number:");scanf("%d",&num);if(num<0){ num=~num+1;sign=-1;} if(sign==1)a[0]=0;else a[0]=1;for(i=MAX-1;i>0;i--){ a[i]=num & 1;num=num>>1;} for(i=0;i<MAX;i++){ printf("%d",a[i]);} putchar('\n');r...
  • 杈撳叆涓涓崄杩涘埗鐨勬鏁存暟,灏璇ユ暟杞崲鎴恘杩涘埗鏁,骞惰緭鍑恒
    绛旓細int main(){ int n,r,i,t,b;char a[100];char c[]="ABCDEFGHIJKLMNOPQRSTUVWXYZ"; //a鏁扮粍鐢ㄥ偍瀛樿浆鍚庢瘡浣嶇殑鏁板瓧锛//c鐢ㄦ潵浠h〃瓒呰繃9鍚庢瘡浣嶇殑鏁板瓧銆俿canf("%d%d",&n,&r);t=n;t=(int)fabs(t);for(i=0;;i++){ b=t%r;if(b>=10)a[i]=c[b-10];else a[i]=b+'0';t=...
  • 鐢C璇█缂栫▼,杈撳叆涓涓崄杩涘埗姝鏁存暟,杈撳嚭鍏跺搴旂殑鍗佸叚杩涘埗鏁存暟銆
    绛旓細include<stdio.h> int main(){ int a,*p;p=&a;scanf("%d",p);printf("%x\n",*p);return 0;}
  • 缂栧啓绋嬪簭,杈撳叆涓涓崄杩涘埗鏁存暟,灏鍏跺彉鎹负浜岃繘鍒跺悗鍌ㄥ瓨鍦ㄤ竴涓瓧绗︽暟缁...
    绛旓細+1;} void main(){ int n,t;int a [100];int i;printf("璇杈撳叆涓涓崄杩涘埗鏁:\n");scanf("%d",&n);t=getlen(n)-1;for(i=0;i<=t;i++){ a[i]=n%2;n=n/2;} printf("瀵瑰簲鐨勪簩杩涘埗鏁:\n");for(i--;i>=0;i--)printf("%ld",a[i]);system("pause");} ...
  • 缂栧啓绋嬪簭,杈撳叆涓涓崄杩涘埗鏁存暟,灏鍏跺彉鎹负浜岃繘鍒跺悗鍌ㄥ瓨鍦ㄤ竴涓瓧绗︽暟缁...
    绛旓細int a; //鏁村瀷鍙橀噺闀垮害涓4涓瓧鑺傦紝杩欎釜淇℃伅寰堝叧閿 char s[32];scanf("%d",&a);for(int i = 0;i<32;i++){ s[31-i]=a%2+'0';//杩欎袱琛屾槸鍗佽繘鍒鍒颁簩杩涘埗 a=a/2; //鐨勮浆鍙樻柟娉 } for(int i =0 ;i<32;i++){ printf("%c",s[i]);} return 0;} ...
  • 缂栧啓绋嬪簭,杈撳叆涓涓崄杩涘埗鏁存暟,灏鍏跺彉鎹负浜岃繘鍒跺悗鍌ㄥ瓨鍦ㄤ竴涓瓧绗︽暟缁...
    绛旓細int a; //鏁村瀷鍙橀噺闀垮害涓4涓瓧鑺傦紝杩欎釜淇℃伅寰堝叧閿 char s[32];scanf("%d",&a);for(int i = 0;i<32;i++){ s[31-i]=a%2+'0';//杩欎袱琛屾槸鍗佽繘鍒鍒颁簩杩涘埗 a=a/2; //鐨勮浆鍙樻柟娉 } for(int i =0 ;i<32;i++){ printf("%c",s[i]);} return 0;} ...
  • 扩展阅读:十进制转中文 ... 输入一个整数倒序输出 ... c语言整数正序输出 ... 0-9数字区位码表 ... 二进制口诀表 ... 八进制对照表大全 ... c语言将12345倒序输出 ... c语言进制大全 ... c语言整数四舍五入 ...

    本站交流只代表网友个人观点,与本站立场无关
    欢迎反馈与建议,请联系电邮
    2024© 车视网