当前位置: 代码迷 >> C语言 >> [求助]潭浩强书上的题目百思不得其解啊
  详细解决方案

[求助]潭浩强书上的题目百思不得其解啊

热度:195   发布时间:2007-08-12 11:17:12.0
[QUOTE]
求一个整数的位数可以用log10()函数。
int n;
scanf("%d",&n);
printf("%d",log10(abs(n))+1);

还是用字符串比较好(效率高,位数多);



你用的是什么编译器?

我的dev-c++(最标准的编译器)可以通过编译,而且输入打出也没错(并不代表你打出的东西就没错!只是显示没有像你说的那样)

所以我判定是你编译器的优先级和我的编译器不一样


我不觉得dev c++好用。(可能是版本问题,在华军下载的据说是最新版。)居然出现这种问题。

const int n=0;
int *ptr=&n;
*ptr=1; //可以通过编译,而且n的值改变了。


不过dev c++ 对C99标准有支持。

[/QUOTE]
----------------解决方案--------------------------------------------------------
嘿嘿..

确实写的挺多的..

你的毅力值得我们学习
----------------解决方案--------------------------------------------------------
好简单的问题
好复杂的代码
学好C,你的计算机绝对会受到你最大的考验
----------------解决方案--------------------------------------------------------

看看这个
#include<stdio.h>
#include<string.h>
main()
{
char str[5],*k;
int i,j;
scanf("%s",&str);
printf("%d\n",strlen(str));
for(i=0;i<strlen(str)-1;i++)
{ for(j=i+1;j<strlen(str);j++)
{
if(str[i]<str[j])
{k=str[i];str[i]=str[j];str[j]=k;}
} }
for (i=0;i<strlen(str);i++)
printf("%c",str[i]);
getch();
}


----------------解决方案--------------------------------------------------------
好牛逼的诶!

我说楼主!

[此贴子已经被作者于2007-8-22 16:53:34编辑过]


----------------解决方案--------------------------------------------------------
有收获!
----------------解决方案--------------------------------------------------------
#include<stdio.h>
#define N 1000
int weishu(int );
int shunshu(int );
int main(void)
{
int a,z;
scanf("%d",&a);
z=weishu(a);
printf("%d\n",z);
shunshu(a);
return 0;
}
int weishu(int a)
{
int i=0;
do
{
a=a/10;
i++;
}while(a!=0);
return (i);
}
int shunshu(int a)
{
int arr[N],i=0,j;
do
{
arr[i]=a%10;
a=a/10;
i++;
}while(a!=0);
for(j=0;j<i;j++)
printf("%d ",arr[j]);
printf("\n");
for(j=i-1;j>-1;j--)
printf("%d ",arr[j]);
printf("\n");
return 0;
}
哪里要上面那么长啊
----------------解决方案--------------------------------------------------------
个人意见,做三个函数!
程序也容易读呀
----------------解决方案--------------------------------------------------------
回复:(mp3aaa)你想的太复杂了#include
斑竹你好强啊....敬仰啊....
----------------解决方案--------------------------------------------------------
#include<stdio.h>
#include<string.h>
main()
{
char str[5];
int i;
scanf("%s",&str);
printf("%d\n",strlen(str));
for(i=strlen(str)-1;i+1;i--)
printf("%c",str[i]);
}
看来我还得继续睡觉,不能一贯的想问题,放空思想
----------------解决方案--------------------------------------------------------
  相关解决方案