A. c语言中用for表示一个数字非整数应如何表示
#include <stdio.h>
int main( )
{
int sum = 0,n;
for( ;scanf("%d", &n)==1; ) //当输入非数字时(不包括回车),返回0结束循环,如a b等
sum += n;
printf("sum = %d\n", sum);
return 0;
}
B. 用c语言如何描述非数字值
因为double类型数据占用8个字节,通过运算符sizeof可以判断: 如果参数arg为double类型,则
sizeof(arg)的值是8,在循环条件中可以这样描述
while(sizeof(arg) == 8) {
......
}
当然这个方法不够完美,假如arg是构造类型,其长度也恰好是8,通过sizeof()判断,则会出现错误。因此建议你将想过代码,或算法贴上来,以便大家给你出主意。
C. c语言如何表示一个非数
e=255;f!=0;
要解答这个问题,首先需要了解浮点数在计算机中的表示规则。
对于32位的浮点数,IEEE754规定,要有8位的阶码,23位的尾数,还有一位的符号位;
其中,尾数用原码表示,阶码用移码表示,(这里的移码不是通常我们认识的那个移码,它的偏移量是2^(n-1)-1,之所以如此规定也是考虑到求倒数不会溢出等等原因。阶码的最大值和最小值用来表示非规格数或者正负无穷。
当0<e<255,规格化数
当e=0;f!=0;非规格化数
当e=0;f=0;有符号位的0
当s=0;e=225;f=0;正无穷
当s=1;e=225;f=0;负无穷
e=255;f!=0;非数
D. C语言中怎么表示非数字
什么叫非数字,把数字当字符使用?这个简单啊,把数字加个单引号就ok,例如:
'5',这是字符,而不是5块钱的5
E. c语言,输出1到1000的非素数
我就站在你的角度写个程序吧
#include <stdio.h>
#include <math.h>
int main()
{
int i,j,m;
for(i=1;i<=1000;i++)
{ m=0; /*标记是否为素数 0代表为素数 1代表为非素数*/
for(j=2;j<=sqrt(i);j++)
if(i%j==0) m=1; /*符和条件 就m=1 */
if(m==1) /*判断m=1 来决定是否输出结果*/
printf("%d ",i);
}
}
不懂的可以用网络HI问 我目前在线
F. c语言去除字符串str中所有非数字字符然后输出无输入,输出为61209
#include <stdio.h>
#include <string.h>
int main(void)
{
//c语言去除字符串str中所有非数字字符然后输出无输入,输出为61209
char a[100];
char b[100];
printf("请输入一串字符:");
gets(a);
int i, j = 0;
for (i = 0; i < strlen(a); i++) {
if ('0' <= a[i] && a[i] <= '9') {
b[j] = a[i];
j++;
}
}
printf("字符中的数字字符是:");
puts(b);
}
G. c语言中怎样表示当输入非数字值时,循环结束
可以使用scanf来输入数字,并用其返回值来判断。
函数名:scanf
所在头文件: stdio.h
原型:intscanf(constchar*format,...);
功能:
从标准输入stdin (标准输入设备,一般是键盘)中读内容的通用子程序,可以按格式(format)读入多个字符,并保存在对应地址的变量中,变量地址由参数传入。
调用形式:
scanf("<格式说明字符串>",<变量地址>);
变量地址要求有效,并且与格式说明的次序一致。
返回值:
返回成功赋值的数据项数,读到文件末尾出错时则返回EOF。
所以如果输入的是合法的数值,返回值将是设定的变量地址个数,比如
scanf("%d%d",&a,&b);
如果正确的话返回值将是2。
如果返回值不是变量地址的个数,那么就代表有非法字符输出,即所说的非数字值。
以输入int值为例,下面这个程序实现了一个没什么用处的功能,仅供理解上述方法。
函数名:test
功能:循环读入整数,当输入非数字值时结束循环。
代码实现:
#include<stdio.h>
voidtest(void)
{
while(1)
{
intv,ret;
ret=scanf("%d",&v);//每次输入一个整型数值并存在v中
if(ret!=1)break;//判断返回值,如果非1则退出循环。
printf("%d ",v);//输出读入的v值
}
}
H. c语言输入一个字符串内有数字和非数字字符 输出数字组成数组
算法有问题,不可能实现你所提出的问题;for(i=0;*p!='\0';i++)
{
if(*(p+i)>='0'&&*(p+i)<='9')k++;
....
}
这是个死循环,因为p没有变化,始终指向串首;循环中间也有很多问题
I. C语言(输出1—100的非3的倍数的数字)
#
include<stdio.h>
#
include<string.h>
#
define
M
100
void
main()
{
int
a[M],i=1,t=1;
while(i<=M)
{
if(i%3!=0)//如果不是三的倍数就打印该数
{
t++;
if(t%5==0)//每五个换一行
printf("\n");
printf("%d-->",i);
}
i++;
}
}
J. C语言。输入一个字符串,删除非数字字符后将数字倒置后输出
楼主这里出错了:
while(str[i]!='\0')
{
if((str[i]>='0')&&(str[i]<='9'))
{
/*******found********/
str[k]=str[i];
k++;
}
i++;
}
str[k]='\0';
应该在while语句后加一句:str[k]='\0';表示字符串结束,因为为新的字符串了,删除字母后