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;
}