c语言输出整数
① c语言,如下,结构体中一个整数的输出方式,求解释一下
printf第一个参数需要一个字符串表示输出的格式,
这行代码给的是一个问号表达式,但是无论node->next结果如何,都是“%d”,冒号前后的值没有差别,所以属于多此一举,可以直接写成
printf ("%d", node->date);
② C语言中如何输出长整型数值
在C/C++中,64为整型一直是一种没有确定规范的数据类型。现今主流的编译器中,对64为整型的支持也是标准不一,形态各异。一般来说,64位整型的定义方式有long long和__int64两种(VC还支持_int64),而输出到标准输出方式有printf(“%lld”,a),printf(“%I64d”,a),和cout << a三种方式。
本文讨论的是五种常用的C/C++编译器对64位整型的支持,这五种编译器分别是gcc(mingw32),g++(mingw32),gcc(linux i386),g++(linux i386),Microsoft Visual C++ 6.0。可惜的是,没有一种定义和输出方式组合,同时兼容这五种编译器。为彻底弄清不同编译器对64位整型,我写了程序对它们进行了评测,结果如下表。
上表中,正确指编译通过,运行完全正确;错误指编译虽然通过,但运行结果有误;无法编译指编译器根本不能编译完成。观察上表,我们可以发现以下几点:
long long定义方式可以用于gcc/g++,不受平台限制,但不能用于VC6.0。
__int64是Win32平台编译器64位长整型的定义方式,不能用于Linux。
“%lld”用于Linux i386平台编译器,”%I64d”用于Win32平台编译器。
cout只能用于C++编译,在VC6.0中,cout不支持64位长整型。
表中最后一行输出方式中的printint64()是我自己写的一个函数,可以看出,它的兼容性要好于其他所有的输出方式,它是一段这样的代码:
CPP
void printint64(long long a)
{
if (a<=100000000)
printf("%d ",a);
else
{
printf("%d",a/100000000);
printf("d ",a0000000);
}
}
这种写法的本质是把较大的64位整型拆分为两个32位整型,然后依次输出,低位的部分要补0。看似很笨的写法,效果如何?我把它和cout输出方式做了比较,因为它和cout都是C++支持跨平台的。首先printint64()和cout(不清空缓冲区)的运行结果是完全相同的,不会出现错误。我的试验是分别用两者输出1000000个随机数,实际结果是,printint64()在1.5s内跑完了程序,而cout需要2s。cout要稍慢一些,所以在输出大量数据时,要尽量避免使用。
③ C语言中,如何以"整数"方式和"字符"方式输出字符
只要按规定的输出格式输出就可以了,整数的输出格式是%d,字符的输出格式是%c
字符按整数输出时,输出的是字符在ASCII码表中对应的数值。
例如:
char ch='a';
printf("%d %c",ch,ch);
输出结果为97 a
%d是按整数输出,输出字符a在ASCII码表中对应的数97,
%c是按字符输出,输出字符a
④ c语言 输出 1到100 所有整数
解决这个问题的方法如下:
1、首先使用新建一个工程和.c文件。
⑤ C语言程序设计中如何输出一个64位的整数
1、ANSI C99标准中并没有64位整数类型。但是,许多实际的编译器,都实现了对64位整数类型的支持。因为没有这方面的标准,所以具体的语法描述方式略有不同,一般Windows平台,用__int64的关键字,而Linux平台则使用long long的描述方法。
2、有人做了测试,如下图所示:
综合上图可以得出如下几点:
a:long long定义方式可以用于gcc/g++,不受平台限制,但不能用于VC6.0。
b:__int64是Win32平台编译器64位长整型的定义方式,不能用于Linux。
c:“%lld”用于Linux i386平台编译器,”%I64d”用于Win32平台编译器。
d:cout只能用于C++编译,在VC6.0中,cout不支持64位长整型。
3、如果要使用64位的整数,尽量使用最新的编译器,Windows平台,尽量使用VS的较新版本,Linux平台,建议将gcc/g++升级到最新版本。
⑥ 用C语言输入n个整数,并输出,怎么做
用标准输入输出函数,考虑到有多个数字,使用在for循环输入输出
#include<stdio.h>
voidmain()
{
intnum[1000],n,i;
printf("要输入数字的个数:");
scanf("%d",&n);
//输入n个数字
for(i=0;i<n;i++)
{
printf("输入第%d个数:",i+1);
scanf("%d",&num[i]);
}
//输出n个数字
for(i=0;i<n;i++)
printf("%d",num[i]);
}
忘采纳
⑦ c语言中如何将字符串转化成整数型并输出
c语言中,可以使用atoi()函数将字符串转化成整数型并输出。
atoi (表示 ascii to integer)是把字符串转换成整型数的一个函数,应用在计算机程序和办公软件中。int atoi(const char *nptr) 函数会扫描参数 nptr字符串,会跳过前面的空白字符(例如空格,tab缩进)等。
如果 nptr不能转换成 int 或者 nptr为空字符串,那么将返回 0 。特别注意,该函数要求被转换的字符串是按十进制数理解的。atoi输入的字符串对应数字存在大小限制(与int类型大小有关),若其过大可能报错-1。
(7)c语言输出整数扩展阅读:
C语言常用函数:
1、int abs(int i)
返回整型参数i的绝对值。
2、double cabs(struct complex znum)
返回复数znum的绝对值。
3、double fabs(double x)
返回双精度参数x的绝对值。
4、long labs(long n)
返回长整型参数n的绝对值。
5、double exp(double x)
返回指数函数ex的值。
6、double frexp(double value,int *eptr)
返回value=x*2n中x的值,n存贮在eptr中。
7、double ldexp(double value,int exp)
返回value*2exp的值。
8、double log(double x)
返回logex的值。
9、double log10(double x)
返回log10x的值。
10、double pow(double x,double y)
返回x^y的值。
⑧ 用C语言编写程序从键盘输入一个正整数数n,输出n!
编程实现计算n!,也就是n*(n-1)*(n-2)*....*1,可以通过递归函数来实现,具体实现方法:
#include <stdio.h>
int Func(int n)
{
if(n < 2)
return 1;
else
return n*Func(n-1);
}
void main()
{
int n =0,m=0;
printf("请输入一个正整数:")
scanf("%d",&n);
m=Func(n);
printf("%d!=%d
",n,m);
}
在以上程序代码中,Func()为递归函数,主函数main()中接收键盘输入整数值后,调用Func()递归函数,首层m=n*(n-1)!,继续递归调用,m=n*(n-1)(n-2)!,这样逐层递归,直到计算出N!。
程序输出结果如下:
(8)c语言输出整数扩展阅读:
所谓n的阶乘就是从1到n的乘积,所以除了递归法来实现以外,其实我们也可以通过一个for循环,从1到n依次求积同样可以达到计算n!的目地。
具体实现代码如下:
#include <stdio.h>
int main() {
int n,i,s=1;
scanf("%d",&n);
for(i=1;i<=n;i++)//for循环求累积
s=s*i;
printf("%d ",s);
return 0;
}
/*
运行结果:(例如求5的阶乘)
5
120
*/
⑨ C语言整数输出
/*我是新手写出来的可能不太好,但是能满足你的要求,比较符合新手吧*/
#include<stdio.h>
voidmain()
{
inta,b,c,d,e,n;
scanf("%5d",&n);
a=n/10000;
b=(n/1000)%10;
c=n%1000/100;
d=(n%100)/10;
e=n%10;
if(a==0&&b==0&&c==0&&d==0)printf("1位 %d ",e);
elseif(a==0&&b==0&&c==0)printf("2位 %d%d ",d,e);
elseif(a==0&&b==0)printf("3位 %d%d%d ",c,d,e);
elseif(a==0)printf("4位 %d%d%d%d ",b,c,d,e);
elseprintf("5位 %d%d%d%d%d ",a,b,c,d,e);
}