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