C语言求助

(3)把一个整数按位输出。例如输入一个整数123,则输出1 , 2 , 3
指针和结构体还没有学

#include <stdio.h>
#include <math.h>

//获取指定整数的第nNo位数,例如GetNumber(12345, 0)为获取12345的第0位数(即个位),返回为5
//x为指定整数,nNo为x的第nNo位(个位为0,十位为1,百位为2,...依此类推)
int GetNumber(long x, int nNo)
{
//这个公式是关键=========>>>>>第n位的数字为: x / 10^n % 10
//比如:
// 个位:x % 10
// 百位:x / 10 % 10
// 千位:x / 100 % 10
// 万位:x / 1000 % 10
// 十万位:x / 10000 % 10
//依此类推...

return (int)(x / (long)pow(10, nNo) % 10); //pow(a,b)函数为计算a的b次方,声明在<math.h>中
}

//获取整数x的位数,一位数,二位数,。。。
int GetDigits(long x)
{
int nCount = 0;
while(x > 0)
{
x /= 10;
nCount++;
}
return nCount;
}

void main(void)
{
int nCount; //整数的位数
int i;

long lNum;

printf("请输入一个正整数:");
scanf("%ld", &lNum);

//计算输入整数的位数
nCount = GetDigits(lNum);

printf("你输入的数:%ld 的各位数分别为:",lNum);

//从最高位开始获取每一位的值
for(i = nCount - 1; i >= 0; i++)
{
printf("%d", GetNumber(lNum,i));//关键是用GetNumber()这个函数获取指定位数的数字

if(i > 0)//=================除了最后一位,其他要用逗号“,”隔开
printf(",");

printf("\n");
}
}
温馨提示:内容为网友见解,仅供参考
第1个回答  2006-11-09
先定义三个整型变量
a,b,c
a=123/100
b=23/10
c=3
输出a,b,c
如果是任意三位数

a=d/100
b=(d-a*100)/10
c=d-a*100-b*10
输出a,b,c
第2个回答  2006-11-09
int value = 12345
char string[80]
sscanf(string, "%d", &value);
int i = 0;
while(!eof(string[i]))
{
putchar(string[i]);
puts(", ");
i++;
}
第3个回答  2006-11-09
#include<stdio.h>
main(){
int a, d ,b,c;
printf("请输入一个三位数");
scanf("%d",c);
a=c/100;
b=c-a;
d=c%10;
printf("%d",a);
printf("%d",b);
printf("%d",d);

}
第4个回答  2006-11-09
#include <stdio.h>
main()
{
int x,a,b,c;
printf("please input a number:");
scanf("%d",&x);
a=x/100;
b=x%100/10;
c=x%100%10/1;
printf("%d",a);
printf("%d",b);
printf("%d",c);
}

C语言作业求助,十分感谢
C代码和运行结果如下:输如10个数,成功输出了它们的最大值、最小值和平均值,望采纳~附源码:include <stdio.h> int main() { int max, min, sum, num, i;scanf("%d", &num); \/\/ 先输入一1个数 max = min = sum = num;for (i = 0; i < 9; i++) { \/\/ 再输入剩下9...

C语言求助,有图,基础比较差,希望过程详细一些?
px 被定义为my_s结构的指针,并被初始化 指向x的地址( *px=&x )答案C: (*px).a px是指针,*px 就是间接寻址 等同于 x 答案D:x->a 因为x 是结构指针所以不能使用->访问结构变量的成员。struct my_s{ int a;char c;}x,*px=&x;以上代码等同于 struct my_s{ int a;char c;};...

c语言求助代码该怎么写,能附带讲解说明最好。
include <stdio.h>void fun() { printf("Smile! ");}int main() { \/\/ 需要打印 3 行, 所以从 0 遍历到 3 for (int i = 0; i < 3; i++) { \/\/ 每行需要打印 "Smile! " 的个数为 3 - i for (int j = 0; j < 3 - i; j++) { fun(); }...

C语言求助求助求大佬救命
第一空:int MAX,MIN;int input_function(int *);int sorting_function(int *);int output_function(int *);第二空:array_data 第三空:array_data[i]=value;第四空:array_data[j-1]>array_data[j]第五空:(i+1)%5==0 另每一个函数最后一个}前加一句return 0;或把函数名前的int...

C语言菜鸟求助:执行语句for(i=0;i++
C语言菜鸟求助:执行语句for(i=0;i++<3;) printf("%d",i);后,程式输出为? 程式执行过程如下 第一次:i=0, 比较0<3,然后i++,i=1,执行输出1 第二次:i=1, 比较1<3,然后i++,i=2,执行输出2 第三次:i=2, 比较2<3,然后i++,i=3,执行输出3 第四次:i=3, ...

求助c语言代码
首先,我们需要定义一个结构体来存储学生的成绩信息,然后创建一个二维数组来存储20个班的40名学生的5门课程的成绩。接着,我们需要编写一个函数来生成随机成绩,并计算每个班、每门课程的平均分。最后,我们需要对平均分进行排序并输出结果。include <stdio.h> include <stdlib.h> include \/\/ 定义结...

C语言作业求助,谢谢
你可以使用如下代码来求解5 * 5矩阵外圈数据的和:在上面的代码中,我们定义了一个5 * 5的矩阵,然后使用四个循环分别求出矩阵的第一行,最后一行,第一列和最后一列的和。最后,我们把所有求出来的和相加,就得到了矩阵外圈元素的和。include <stdio.h>int main(){\/\/ 定义5*5的矩阵(二维数组...

c语言编程求助,越多越好我可以加,一题也行,感谢大神!
1#include<stdio.h>int prime(int n){ int flag=1; if(n<=1) return 0; for(int i=2;i*i<=n;i++){ if(n%i==0){ flag=0; break; } } if(flag) return 1; else return 0;}int main(){ int t; scanf("%d",&t); if(prime(t...

c语言问题求助
文中说的是10000000代表-128。详细描述如下:[+1] = [00000001]原 = [00000001]反 = [00000001]补 [-1] = [10000001]原 = [11111110]反 = [11111111]补 计算机将第1位作为符号位,0表示正数,1表示负数。原码:原码很好理解,第1位是符号位,其余位表示数值。反码:(1)正数:正数反码是其...

c语言 求助大神 急
2、真 或 true 3、x > a && x < b 4、%= 优先级低于 -,故答案为a = 14%4=2

相似回答