c語言1122
❶ 猜數字c語言
其實這個程序很簡單,思路很清晰
首先產生一個隨機的四位數,且每位都不相同
int a[10]={0,1,2,3,4,5,6,7,8,9};
int b,c,i,t;
for(i=0;i<100;i++) //思路就是產生兩個10以內的隨機數,交換a中這兩個下標的數值,
{ //經過多次交換後,著a中的這10個數就打亂了次序,就像是隨機數了
b=rand()%10; //這個交換多少次,隨便了,只要打亂就可以
c=rand()%10;
if(b!=c)
{t=a[b];a[b]=a[c];a[c]=t;}
}
接著取出連續的a中的4個數,這樣就是那個隨機數
int suiji[4];
for(i=0;i<4;i++)
suiji[i]=a[i]; //這樣隨即中就是四個要猜的數,
要是想要第一位不是0,可以這么計算
int j;
for(i=0,j=0;j<4;i++)
{
if(a[0]==0)
continue;
suiji[j++]=a[i];
}
接下來就是輸入數據,
int shuru,shr[4],s;
while(1)
{
scanf("%d",&shuru);
s=shuru;
i=3;
while(s)
{
shr[i--]=s%10;
s/=10;
}
if(shuru>1000&&shuru<9999&&shr[0]!=shr[1]&&shr[0]!=shr[1]&&shr[0]!=shr[2]&&shr[0]!=shr[3]&&shr[1]!=shr[2]&&shr[1]!=shr[3]&&shr[2]!=shr[3])
//shuru在1000~9999之間並且各各位不相等,就跳出,否則繼續輸入
break;
else
printf("Error");
}
接著這個輸入的數據和這個隨機數的比較了,其實很簡單
m是位置和數字都對的。n是數字對,但位置不對的
int m=0,n=0;
for(i=0;i<4;i++)
for(j=0;j<4;j++)
if(shr[i]==suiji[j])
n++;
for(i=0;i<4;i++)
if(shr[i]==suiji[i])
m++;
n-=m;
接著是列印輸入的數和mn(這個就是判斷的結果)這個我就不用再寫了吧
清屏用system("cls");
最後是總裝,先產生四位的隨機數,接著用一個大循環把輸入和比較還有列印判斷結果包含進去。
退出這個循環的條件有兩個,一個是m=4,一個是到了規定的次數
❷ 關於C語言函數遞歸的問題!和漢諾塔的問題!
voidf(intn)
{
if(n==1)
{
printf("11 ");
}
else
{
f(n-1);
printf("2 ");
}
}
f(3)進入函數,3!=1, 會走Else, 先運行f(2), 再輸出2
f(2)進入函數,2!=1, 會走Else, 先運行f(1), 再輸出2
f(1)進入函數,1=1, 輸出11,返回
逆向看,結果就是1122
❸ C語言中a=11,b=1122則 a<>b是什麼意思
<> 關系運算符;雙目運算符。
在Pascal中,<>判斷兩個變數是否不相等,返回值為Boolean型。
c語言里的不等關系符為!=
❹ C語言中聯合體問題
0x2211
因為字元數組,按下標大小先後存儲,即b[0]在前,b[1]在後,對應於整數低位在前,高位在後
❺ C語言問題啊
是16進制的04 62,因為是大端小端問題,系統的內存的存放方式會不一樣。你這應該是大端,所以高位元組的數字在低地址。
❻ C語言中short取值的問題
你沒理解16進制,16進制,每一位相當於4位二進制,所以0x1122正好是2個位元組的整數,可以賦值給short,因為char是佔一個位元組,而0x11這樣的顯然是佔1個位元組啊,也不會整數舉出的。
❼ C語言如何下這樣一個程序
#include<stdio.h>
void main()
{
int c;
int a=11,b=22;
printf("c=%d%d",a,b);}
例如這樣「%d%d」 c就可以是ab.
考點不同答案就不一樣,希望可以幫到你,有不足的之處希望可以指出
❽ C語言 1122
該程序是輸出自然數(1,2,3,4…)的前n項和。
因為有死循環,所以運行結果沒完沒了。
因為你程序中i和j同時在自加,所以第二個for循環一直滿足,結果就沒完沒了樂。
建議按如下修改:
for(;i<=20;i++)
for(;j<=i;j++)
{b=b+a;a=a+b;
printf("%d\n",a);}
}
❾ c語言中,printf("%d%5d\n",a,b);其中%d和%5d什麼區別
%d 輸出整型
%nd 輸出的整型寬度至少為n位,右對齊,%5d即寬度至少為5位,位數大於5則輸出實際位數
%0nd 用得比較多,表示輸出的整型寬度至少為n位,不足n位用0填充
printf("%05d",1)輸出:00001
printf("%5d",1)輸出:****1(*為空格)
❿ C語言雙位元組的數怎麼由主機位元組序轉化網路位元組序
unsigned short a = 0x1122;
unsigned short b = (a>>8) || (a<<8);
其中b就是網路位元組序(大端)