㈠ c語言 怎麼將輸入的數字限制在六位啊
按照你的要求,修改了一下:
#include<stdio.h>
#include<string.h>
#include<stdlib.h>
structcustomer
{
charname[50];
charaddress[100];
charphone[20];
charPIN[10];
};
voidnew_customer()
{
structcustomera;
structcustomer*p=&a;
FILE*fp1;
charfilename[20]={0};
inti;
memset(&a,0,sizeof(structcustomer));
printf("pleaseenterfilename ");
gets(filename);
if((fp1=fopen(filename,"w"))==NULL)
{
printf("cannotopenfile ");
exit(0);
}
printf("pleaseinputyourname: ");
gets(p->address);
printf("pleaseinputyouraddress: ");
gets(p->address);
printf(": ");
gets(p->phone);
printf("pleaseinputyourPIN: ");
scanf("%6s",p->PIN);
for(i=0;i<6;i++)
{
if(p->PIN[i]<'0'||p->PIN[i]>9)
{
printf("YourPINisincorrect. ");
fclose(fp1);
return;
}
}
fwrite(p->address,1,strlen(p->address),fp1);
fwrite("",1,1,fp1);
fwrite(p->phone,1,strlen(p->phone),fp1);
fwrite("",1,1,fp1);
fwrite(p->PIN,1,strlen(p->PIN),fp1);
fclose(fp1);
}
intmain(void)
{
new_customer();
return0;
}
測試截圖:
提示字元太多,就不寫注釋了。
㈡ 用C語言編輸入一個3位的正整數,分別輸出它的個位,十位,百位數字
代碼如下:
#include<stdio.h>
void main()
{
int n,a,b,c;
scanf("%d",&n);
a=n; c=a%10; a/=10; b=a%10; a/=10; a%=10;
printf("%d的個位為%d,十位為%d,百位為%d。\n",n,c,b,a);
}
c語言:
1.簡介:
C語言是一種計算機程序設計語言,它既具有高級語言的特點,又具有匯編語言的特點。它由美國貝爾研究所的D.M.Ritchie於1972年推出,1978年後,C語言已先後被移植到大、中、小及微型機上,它可以作為工作系統設計語言,編寫系統應用程序,也可以作為應用程序設計語言,編寫不依賴計算機硬體的應用程序。它的應用范圍廣泛,具備很強的數據處理能力,不僅僅是在軟體開發上,而且各類科研都需要用到C語言,適於編寫系統軟體,三維,二維圖形和動畫,具體應用比如單片機以及嵌入式系統開發。
2.基本特性
1、高級語言:它是把高級語言的基本結構和語句與低級語言的實用性結合起來的工作單元。
2、結構式語言:結構式語言的顯著特點是代碼及數據的分隔化,即程序的各個部分除了必要的信息交流外彼此獨立。這種結構化方式可使程序層次清晰,便於使用、維護以及調試。C 語言是以函數形式提供給用戶的,這些函數可方便的調用,並具有多種循環、條件語句控製程序流向,從而使程序完全結構化。
4、代碼級別的跨平台:由於標準的存在,使得幾乎同樣的C代碼可用於多種操作系統,如Windows、DOS、UNIX等等;也適用於多種機型。C語言對編寫需要進行硬體操作的場合,優於其它高級語言。
5、使用指針:可以直接進行靠近硬體的操作,但是C的指針操作不做保護,也給它帶來了很多不安全的因素。C++在這方面做了改進,在保留了指針操作的同時又增強了安全性,受到了一些用戶的支持,但是,由於這些改進增加語言的復雜度,也為另一部分所詬病。Java則吸取了C++的教訓,取消了指針操作,也取消了C++改進中一些備受爭議的地方,在安全性和適合性方面均取得良好的效果,但其本身解釋在虛擬機中運行,運行效率低於C++/C。一般而言,C,C++,java被視為同一系的語言,它們長期占據著程序使用榜的前三名。
3.特有特點
1.C語言是一個有結構化程序設計、具有變數作用域(variable scope)以及遞歸功能的過程式語言。
2.C
㈢ c語言如何輸出:用戶輸入的小數位數
#include<stdio.h>
int main()
{
double num;
int bit;
printf("請輸入一個浮點數:");
scanf("%lf", &num);
printf("請輸入要設置的小數位數:");
scanf("%d", &bit);
printf("Num=%.*lf\n", bit, num);
return 0;
}
㈣ 用c語言編程:輸入一個四位數,求出它的個位、十位、百位、千位
C代碼:---------------------
int a;
scanf("%d",&a);
printf("個位:%d,十位:%d,百位:%d,千位:%d",a%10,a%100/10,a%1000/100,a/1000)
--------------------------------
VC++中代碼如下:
#include "stdafx.h"
#include <stdlib.h>
int main(int argc, char* argv[])
{
int a;
scanf("%d",&a);
printf("個位:%d,十位:%d,百位:%d,千位:%d",a%10,a%100/10,a%1000/100,a/1000);
system("pause");
return 0;
}
C語言有以下幾種取整方法:
1、直接賦值給整數變數。如:
int i = 2.5; 或 i = (int) 2.5;
這種方法採用的是捨去小數部分,可以用於你的問題。
2、C/C++中的整數除法運算符"/"本身就有取整功能(int / int),而下面介紹的取整函數返回值是double。整數除法對正數的取整是捨去小數部分,但是整數除法對負數的取整結果和使用的C編譯器有關。
3、使用floor函數。floor(x)返回的是x的整數部分。如:
floor(2.5) = 2
floor(-2.5) = -3
4、使用ceil函數。ceil(x)返回的是不大於x的最小整數。如:
ceil(2.5) = 2
ceil(-2.5) = -2
floor和ceil對於正數沒有區別,但是對於負數結果不同。floor()是向負無窮大舍入,floor(-2.5) = -3;ceil()是向正無窮大舍入,ceil(-2.5) = -2。
㈤ C語言輸入輸出格式
在C語言中,輸入使用的是scanf函數,scanf函數的格式為scanf(格式控制,地址列表),如scanf("%d"&a)。
輸出使用的是printf()函數,printf函數的格式為printf(格式控制,輸出表列),如printf("%d ",a)。在輸出時可以在"%"和字母之間插進數字表示最大場寬。可以根據需要輸出數字的位數來決定「%」前的數值。
如:%3d表示輸出3位整型數, 不夠3位右對齊。
%9.2f 表示輸出場寬為9的浮點數, 其中小數位為2, 整數位為7,小數點佔一位, 不夠9位右對齊。
%8s 表示輸出8個字元的字元串, 不夠8個字元右對齊。
(5)c語言輸入的位擴展閱讀
C語言輸入輸出時的規則:
一、格式說明符個數與輸入數據個數不相等的情況:
當我們輸入數據時,只要沒有按回車鍵,所輸入的數據都還存放在緩沖區,並沒有存入變數中。按【Enter】鍵後,scanf()函數才會從緩沖區中取走數據。緩沖區是一個先進先出的隊列,即取走數據的時候,遵循先輸入的數據先取走的原則。
scanf函數的格式說明符有幾個就要取幾次數據,只要碰到格式說明符就必須把數據取走,至於是不是要把取走的數據存放起來,就得看數據列表中的數據個數。沒取完的數據繼續留在緩沖區中。
二、寬度輸出的情況:
1、在%和格式字元之間加入一個整數來控制輸出數據所佔寬度
2、在%和格式字元f之間加入一個「整數1.整數2」來控制輸出數據的格式。
整數1:整個輸出數據占的總寬度
整數2:輸出實數的小數部分的個數
注意:先用整數2處理小數部分,再用整數1處理整個數據,包括已處理好的小數部分
三、寬度輸入的情況:
寬度輸入指的是在%和格式說明符d之間加入一個整數。如:scanf("%2d", &x);
注意:
1、%d與%1d是不同的,它們具有不同的含義。
2、 當寬度小於數據的實際寬度時,截取指定寬度的部分作為一個數進入緩沖區,再將剩餘部分作為另一個數放入緩沖區。
㈥ C語言 判斷輸入數的位數
要算輸入有幾位,有很多方式
如字元串輸入,那麼用strlen就可以搞定,合並成一個數的代碼
i=0,sum=0;
while(a[i])
{
sum=sum*10+a[i]-48;
i++;
}
要是輸入一個數,那麼可以用這個代碼
b=a;
i=0;
while(b)
{
b/=10;
i++
}
有可能差一位,那麼加上一就可以,不過全部使用
㈦ 用c語言如何求輸入數有幾位
int i;
for(i=0;n;i++,n/=10);
執行完這個循環後,n就是i位數的正整數。
㈧ c語言編程,求輸入的有幾位數
#include<stdio.h>
void
main()
{
int
i,num,count=0;
printf("請輸入一個整數:
\n");
scanf("%d",&num);
printf("整數的逆序輸出為:
\n");
while(num/10)
{
count++;
printf("%d",num%10);
num/=10;
}
count++;
printf("%d\n",num);
printf("該整數共有%d位
\n",count);
}
㈨ C語言 判斷一個輸入得數子是幾位數
判斷一個輸入得數子是幾位數的源代碼如下:
#include<stdio.h>void main()
{
void count();
printf("請輸入一串字元,數字、字母皆可: ");
count();
}
void count()
{
char c[32];
int n=0;
while((c[n]=getchar())!=' ')
{
n++;
}
printf("輸入字元總數為:%d ",n);
printf("反序輸出結果為:");
for(n;n>=0;n--)
{
printf("%c",c[n]);
}
printf(" ");
}
(9)c語言輸入的位擴展閱讀
1、關鍵字不能用作用戶定義的名稱(標識符)。
2、對於每個開放的brase({),必須有相應的閉合brase(})。
3、必須聲明每個變數bofore使用它。
4、每個C程序都必須編寫此語句。該語句(main)指定C程序執行的起始點。main是一個用戶定義的方法,它告訴編譯器這是程序執行的起點。int是在完成主方法執行後將返回操作系統的值的數據類型。如不想返回任何值,可以將其用作void。
㈩ c語言 輸入任意一個整數,判斷其是幾位數
不會C語言。給出幾個演算法,代碼是fortran的,供參考。
第一種,用整數除法。對於整數a,連續用10除,直到商為零。除法的次數,即為位數。
這個演算法對於正負整數和零都能獲得正確的結果。