A. c语言 循环结果类型的选择及转换
B
不能计算1*2*3*...*n的程序段是:
(2) i=1;s=1;
while(i<=n)
s*=i++;
只能计算:1*2*3*...*(n-1)
B. C语言中如何用循环实现十进制数转换成二进制数
#include<stdio.h>
main()
{
char *tentotwo(int n);
int num;
printf("please input a integer:");
scanf("%d",&num);
printf("该数转换为二进制为:%s\n\n", tentotwo(num));
}
char *tentotwo(int n)
{
int i,j=0;
int *p, *q, *f;
char *s;
p = (int *)malloc(32*sizeof(int));
s = (char *)malloc(32);
q = p;
f = (int *)malloc(32*sizeof(int));
while(n)
{
*q = n%2;
n /= 2;
q++;j++;
}
for(i=0;i<j;i++)
*(f+i)=*(p+j-1-i);
for(i=0;i<j;i++)
{
switch(*(f+i))
{
case 0 : *(s+i) = '0'; break;
case 1 : *(s+i) = '1'; break;
default : break;
}
}
*(s+j) = '\0';
return s;
}
C. 在C语言中怎样实行两个死循环的相互转换
#include <stdio.h>
#include <stdlib.h>
int main(int argc, char *argv[])
{
LABEL_1:
while(1)
{
printf("我是死循环【1】,我会随机切换到死循环【2】。\n");
if(rand()%2)
goto LABEL_2;
}
LABEL_2:
while(1)
{
printf("我是死循环【2】,我会随机切换到死循环【1】。\n");
if(rand()%2)
goto LABEL_1;
}
return 0;
}
引用: 这个答案算是正解!可以稍微修改,用线程或者定时器,尽量别用goto
D. C语言循环语句用法
三种循环语句!for(变量初始话;条件判断
;
变量的自增或自减){
语句;}for循环一般用在已知循环次。while(表达式){
语句;
}while一般用在循环次数不明的情况do{语句}while(表达式);do。。。while一般用在循环次数不明切必须有一次循环;这三种循环是可以相互转换的!!切记!希望多你有帮助!我是学软件的,不懂的可以加我QQ问!
E. c语言,用循环的方法将字符串“123”转化成数字123,应该怎样写
C语言中可以调用atoi()函数将字符串数字转换成整型数,所需要头文件为stdlib.h
函数原型:int atoi( char *s) ;
函数说明:将字符串s转换为整型值,返回给调用者。
参考代码:
相关函数还有:
atof():将字符串转换为双精度浮点型值。
atol():将字符串转换为长整型值。
strtod():将字符串转换为双精度浮点型值,并报告不能被转换的所有剩余数字。
strtol():将字符串转换为长整值,并报告不能被转换的所有剩余数字。
strtoul():将字符串转换为无符号长整型值,并报告不能被转换的所有剩余数字。
F. c语言如何用循环将十进制转为二进制
#include"stdio.h" int er(int m); int ba(int f); int shiliu(int k); int n,a[30],c=0; void main() { int i,j; printf("*****欢迎使用这个程序,请选择序号*****\n"); scanf("%d",&i); switch(i) { case 1:{ printf("***您选择的是--将十进制数转换为二进制***\n"); printf("请输入一个十进制数:\n"); scanf("%d",&j); er(j); break; } case 2:{ printf("***您选择的是--将十进制数转换为八进制***\n"); printf("请输入一个十进制数:\n"); scanf("%d",&j); ba(j); break; } case 3:{ printf("***您选择的是--将十进制数转换为十六进制***\n"); printf("请输入一个十进制数:\n"); scanf("%d",&j); shiliu(j); break; } default: printf("输入数据不合法,请重新输入\n"); } int er(int m) { if(m/2) { n=m%2; a[c]=n; c++; m=m/2; } for(;c>=1,c--) printf("与其对应的二进制数是 %d",a[c-1]); return a[c-1]; printf("\n"); } int ba(int f) { if(f/2) { n=f%2; a[c]=n; c++; f=f/2; } for(;c>=1,c--) printf("与其对应的八进制数是 %d",a[c-1]); return a[c-1]; printf("\n"); } int shiliu(int k) { if(k/2) { n=k%2; a[c]=n; c++; k=k/2; } for(;c>=1,c--) printf("与其对应的十六进制数是 %d",a[c-1]); return a[c-1]; printf("\n"); }
G. for语句和while语句是可以相互转换的吗
是可以相互转换的。
for循环是编程语言中一种开界的循环语句,而循环语句由循环体及循环的终止条件两部分组成,for循环其在各种编程语言中的实现与表达有所出入,但基本为以C语言和pascal语言代表的两种形式。
C语言中的for循环如下:
1、语句最简形式为:for(; ; );
2、一般形式为:
for(单次表达式;条件表达式;末尾循环体)
{
中间循环体;
}
其中,表示式皆可以省略,但分号不可省略,因为";"可以代表一个空语句,省略了之后语句减少,即为语句格式发生变化,则编译器不能识别而无法进行编译。
while是计算机的一种基本循环模式。当满足条件时进入循环,不满足跳出。while语句的一般表达式为:while(表达式){循环体}。
H. 如何用c语言循环结构实现十进制与各种进制间的转化,运用什么思想,最好举个例子。。拜托拜托
如果要你手算一个数M的n进制表示,你怎么算?我以前是直除,然后余数的倒序就是结果。现在常用的n进制一般直接用n的0次方、1次方……往上面加,直到正好凑到M为止。
如果要用循环的话,前一个方法比较合适。用取余%得到结果,用整除/得到下一次除法的被除数。程序如下。
void main()
{
int a[100]; //存放结果
int m,n; //存放输入的十进制数和进制
int len=-1,i;
scanf("%d%d",&m,&n);
while(m>0)
{
a[++len]=m%n; //获得余数
m/=n; //整除
}
for(i=len;i>=0;i--, printf("%d",a[i])); //output
putchar('\n');
}