編程n為整數
循環N次 每次輸入一個就好。
可以隨輸入隨處理,也可以存到數組裡面。
樣例
intN,t;
scanf("%d",&N);
while(N--)
{
scanf("%d",&t);
...
}
B. C++編程:從鍵盤輸入一個正整數n,編程計算n!
容我說句實話,樓上兩位的代碼只能算比較小的階乘,比如 100! 就算不出了。
我是用數組來實現大數的階乘,代碼如下:
#include<iostream>
#include<deque> // 利用雙端隊列保存計算結果的每一位
using namespace std;
int main()
{
deque<int> a;
a.push_back(1);
a.push_back(1);
int n,top = 1;
cout << "Input n: ";
cin >> n;
for(int i = 1; i <= n; i++)
{
for(int j=1; j <= top;j++)
a[j] *= i;
for(int j = 1; j <= top; j++)
{
if(a[j]>10)
{
for(int r = 1; r <= top; r++)
{
int tmp = a[r] / 10;
a[r] = a[r] % 10;
if(r+1 == a.size())
{
if(tmp == 0)
break;
else
{
a.push_back(tmp);
top++;
break;
}
}
a[r+1] += tmp;
}
}
}
}
cout << n <<"! = ";
for(int j = top ; j > 0; j--)
cout << a[j];
cout << endl;
return 0;
}
PS:上面的代碼是我前些時寫的,所以沒有注釋.
這位兄弟將代碼拿去跑一遍就知道了,結果是正確的
C. C語言:編程輸入n個整數,用選擇法排序將它們按升序重新排列後輸出。
代碼如下:
//#include"stdafx.h"//vc++6.0加上這一行.
#include"stdio.h"
#include"stdlib.h"
intmain(void){
intn,x[20],i,j,k;
while(1){
printf("Inputn(intn<=20)... ");
if(scanf("%d",&n),n==0)
break;
for(i=0;i<n;scanf("%d",x+i++));
printf(" Aftersortingasfollows: ");
for(i=0;i<n;i++){
for(k=i,j=k+1;j<n;j++)
if(x[k]>x[j])k=j;
if(k!=i){
j=x[k];
x[k]=x[i];
x[i]=j;
}
printf(i<n-1?"%d":"%d ",x[i]);
}
}
return0;
}
D. c語言編程 輸入正整數n,求n是幾位數
當你輸入一個正整數n時,你需要編寫一個C語言程序來確定n是幾位數。這可以通過計算n的位數來實現。具體來說,你可以使用循環來將n除以10,直到n小於10為止。每次除以10時,計數器加1,最終計數器的值就是n的位數。
以下是一個簡單的C語言程序,可以實現這個功能:
```
#include <stdio.h>
int main() {
int n;
int count = 0;
printf("請輸入一個正整數:");
scanf("%d", &n);
while (n >= 10) {
n /= 10;
count++;
}
count++; // 加上最高位
printf("%d 是 %d 位數。\n", n, count);
return 0;
}
```
在這個程序中,我孫派蔽們首先聲明羨團了一個變數n來存儲輸入的正整數,以及一個計數器count來記錄n的位數。然後,我們使用scanf函數來讀取用戶輸入的n。接下來,我們使用一個while循環來將n除以10,直到n小於10為止。每次循環時,計數器count加1。最後,我們再將count加1,以計算最高位的位數。最後,我們使用printf函數輸出n的位數。
希望這個C語言程序能夠幫助你解決這則州個問題!