A. c語言:1~9這9個數字,不重復組成3個3位數,使一個數是第一個的2倍,最後一個是第一個的3倍,咋寫
這題可以用最笨的辦法解決——
代碼文本:
#include "stdio.h"
int main(int argc,char *argv[]){
int a,b,c,x,y,z,i,j,k;
printf("The result is as following: ");
for(a=1;a<10;a++)
for(b=1;b<10;b++)
if(b-a)
for(c=1;c<10;c++)
if(c-a && c-b)
for(x=1;x<10;x++)
if(x-a && x-b && x-c)
for(y=1;y<10;y++)
if(y-a && y-b && y-c && y-x)
for(z=1;z<10;z++)
if(z-a && z-b && z-c && z-x && z-y)
for(i=1;i<10;i++)
if(i-a && i-b && i-c && i-x && i-y && i-z)
for(j=1;j<10;j++)
if(j-a && j-b && j-c && j-x && j-y && j-z && j-i)
for(k=1;k<10;k++)
if(k-a && k-b && k-c && k-x && k-y && k-z && k-i && k-j
&& a*200+b*20+c*2==x*100+y*10+z && a*300+b*30+c*3==i*100+j*10+k)
printf(" %d%d%d %d%d%d %d%d%d ",a,b,c,x,y,z,i,j,k);
return 0;
}
B. 怎麼用c語言讓一個數保留2位小數
在c語言中讓一個數保留2位小數可以通過精度限定符來完成,精度限定符有一個點號後跟一個整數組成。其准確含義依賴於它所修飾的數據類型。示例如下:
#include<stdio.h>
intmain()
{
printf("%.2lf ",1.2345678);
return0;
}
C. 在C語言中怎麼把一個數轉換成二進制然後輸出
數據在內存中本來就是以二進制補碼存放的,設法從高位元組至低位元組一個bit一個bit地輸出到屏幕上即可。根據題面要求,輸出過程還要做以下工作:
從最高位元組開始檢測,全0的位元組略去;
每8位增加輸出一個空格。
代碼如下:
12345678910111213141516//#include "stdafx.h"//If the vc++6.0, with this line.#include "stdio.h"int main(void){ char *p; unsigned i,n,x=1<<sizeof(int)*8-1; printf("Input an integer...\n"); scanf("%d",&n); for(p=(char *)&n,i=sizeof(int)-1;i>0;i--) if(*(p+i)==0) x>>=8; else break; for(i=0;x;x>>=1) printf(++i%8 ? "%d" : "%d ",(n&x) || 0); printf("\n"); return 0;}
D. C語言編程問題:輸入一個10進制整數,各個倍數逆序後組成一個新的數,輸出該數的2倍
雖然不知道這個數的的位數,但是我們可以通過求余取模的方式來計算。例如你輸入的數字是123,先對這個數求對10的余數,即123%10=3,這個數的個位數已經對我們沒用了可以直接去掉123/10=12,123後一位的逆序為3;再求余數12%10=2,再去掉末位數12/10=1,後兩位數的逆序為3*10+2=32;再求余數1%10=1,再去掉末尾數1/10=0,後三位的末位數為32*10+1=321。我們可以通過去掉末位數是否等於0來判斷是否需要再求余數。
上述描述的編程如下:
#include<stdio.h>
int main ()
{
int n, m, t; //變數n保存輸入的10進制整數,m保存輸出的整數,t為中間變數
scanf("%d",&n);
m = 0;
while(n != 0) //n的值等於0說明輸入數的所有位置已經考慮完
{
t = n % 10; //可以得到n的最後一位數
n = n / 10; //將n的最後一位數去掉
m = m*10 + t; //得到當前的輸出數值
}
m = m * 2; //求逆序後數值的兩倍
printf("%d\n",m);
return 0;
}
E. c語言題: 從鍵盤輸入一個任意位數的數,判斷他的2倍是否為迴文數。(例如 輸入121輸出 YES
# include <stdio.h>
int main(void)
{
int val, m,sum=0;
printf("請輸入一個正整數: ");
scanf("%d",&val);
m = 2*val;
while(m)
{
sum = 10*sum + m%10;
m/=10;
}
if(2*val == sum)
printf("%d的二倍是迴文數!\n",val);
else
printf("%d的二倍不是迴文數!\n",val);
return 0;
}
F. c語言中如何解決一個整數既是2的倍數,又是3的倍數
假設這個整數是n,如果它同時是2和3的倍數,那它肯定也是6的倍數,可以寫成:
if(n%6==0)
{
//當n同時是2和3的倍數時要執行的代碼
}
G. C語言:兩倍 【循環】
int find2(int d[],int n)
{
int c=0;
int i,j;
for (i=0;i<n;i++)
{
for (j=0;j<n;j++)
{
if (i!=j && d[i] == d[j]*2)c++;
}
}
return c;
}
然後寫函數讀數據做輸出就可以了
H. C語言 問題 E: 二倍的問題
#include<stdio.h>
int main()
{
int n;
scanf("%d",&n);
while(n--)
{
int a[20]={0},k=0,sum=0,x;
do{
scanf("%d",&x);
a[k++]=x;
}while(x!=0);
for(int i=0;i<k-1;i++)
{
for(int j=i+1;j<k;j++)
{
if(a[i]==2*a[j]||2*a[i]==a[j])
sum++;
}
}
printf("%d ",sum);
}
return 0;
}
I. C語言編寫程序:在一個數組中,為2的n次方倍數的數的個數。
供參考……
#include "stdio.h"//
#include "windows.h"//
#include "time.h"//
#define N 2048
void main(void){
int nGroup[N],*ptemp,i,count=0,n;
srand((unsigned)time(0));
for(ptemp=nGroup,i=0;i<N;i++,*ptemp++=rand());
for(ptemp=nGroup,i=0;i<N;i++,ptemp++){
n=*ptemp;
while(!(n%2)) n/=2;
if(*ptemp>1 && n==1) count++;
}
printf("Such number %d in the array!\n",count);
}
J. c語言求倍數
#include<stdio.h>
intmain(void)
{
inta,b;
printf("inputtwonumber:");
scanf("%d%d",&a,&b);
if(a%b)
{
\不是它的倍數
}
else
{
something
}
return0;
}