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';表示字元串結束,因為為新的字元串了,刪除字母後