首页 > 软件 > 用C语言大家帮个忙

用C语言大家帮个忙

软件 2024-08-11

C语言问题,大家帮个忙谢谢

解题思路(不考虑负数):

  1. 根据数字大小判断是几位数。

  2. 如果输入的是 0,则是 1位数,正序、逆序都为 0。

  3. 如果不是0,可以根据该数是几位数进行循环输出。这里提供了一种扩展性较强的算法,可以参考。

  4. 代码中,k = 1000表示当该数是 4位数,然后通过循环来缩减k的值,从而从高到低输出每一位的数字(正序)。

  5. 逆序的算法相对正序简单点,先通过 % 10 取出最低位,再通过 / 10删除最低位,循环就可以把每一位数字都输出来。

测试代码

测试结果

测试代码:

#include

int main()

{

int n, k = 1000, len = 4;

scanf("%d", &n);

// 判断它是几位数

if (n < 10) len = 1;

else if (n < 100) len = 2;

else if (n < 1000) len = 3;

printf("%d\n", len); // 输出是几位数

// 如果输入0

if (n == 0) printf("%d\n%d", n, n);

else

{

while (k) // 正序输出它的各个数据位

{

if (n / k) printf("%d ", n / k % 10);

k /= 10;

}

printf("\n");

while (n) // 逆序输出它的各个数据位

{

printf("%d ", n % 10);

n /= 10;

}

}

return 0;

}

C语言高手来帮个忙!

在编译器没有内存对齐的优化设置下: 在16位机器上是11,因为: sizeof(int) = 2 sizeof(char) = 1 sizeof(double) = 8 在32位的机器上是13 因为 sizeof(int) = 4 sizeof(char) = 1 sizeof(double) = 8 另外,课本上除非是说错了,或者说的是在具有内存对齐优化的设置下,否则,char型不可能是2字节,无论是32位还是16位机器。 BTW: WCHAR 是 2 TCHAR 要看有没有定义UNICODE宏,定义了就是2,否则就是1

谁会C语言进来帮个忙吧!

第三个a=1,b=2,c=3 第四个是,a=12,b=345; 第五个是,c=ABC

C语言任务,帮个忙,按要求做

#include #include #include #include void fun(char xx[]) //前面加$的函数 { char *p,*q; int len,j=0; len=strlen(xx); // 求原来的长度 p=xx; //p指向数组首地址 q=xx+len; //q指向尾地址。 while(*p!=EOF){ //p 没到结束 if(*p>='0'&&*p<='9'){ //判断是不是数字 while(q!=p){*q=*(q-1);--q;} // 把数字后面的所有内容往后退一位,空出

标签:CC++ C(编程语言) 编程 信息技术 计算机

大明白知识网 Copyright © 2020-2022 www.wangpan131.com. Some Rights Reserved. 京ICP备11019930号-18