V. 2014
1.文字変換
タイトル:
キーボードから文字列を読み取り、文字に遭遇した場合は0を出力し、数字に遭遇した場合は1を出力します。それ以外の場合は出力しません。例:入力ab2&3 @ c、出力00110
コード:
#include<stdio.h>
#include<string.h>
int main()
{
char str[100];
gets(str);
int len = strlen(str);
for(int i=0;i<len;i++)
{
if((str[i]>='a'&&str[i]<='z')||str[i]>='A'&&str[i]<='Z')
putchar('0');
else if(str[i]>='0'&&str[i]<='9')
putchar('1');
}
return 0;
}
2.空気濃度の計算
タイトル:
大気質指標は、汚染物質の濃度に従って計算される大気質の状態を説明する無次元の指標です。入力濃度Cと出力インデックスIをプログラムします。PM2.5の濃度とレベルIは次のように表示されます(画像は少し
不明瞭です)濃度を計算する式は次のとおりです:結果=((Imax-Imin)/(Cmax-Cmin))*(C-Cmin)+ Imin
コード:
#include<stdio.h>
//result = ((Imax-Imin)/(Cmax-Cmin))*(C-Cmin)+Imin
double calcu(double Cmax, double Cmin, double Imax, double Imin, double C)
{
double res;
res = ((Imax-Imin)/(Cmax-Cmin))*(C-Cmin)+Imin;
return res;
}
int main()
{
double res, C;
scanf("%lf", &C);
if(C>=0&&C<=12.0)
res = calcu(0, 12.0, 0, 50, C);
else if(C>=12.1&&C<=35.4)
res = calcu(12.1, 35.4, 51, 100, C);
else if(C>=35.5&&C<=55.4)
res = calcu(35.5, 55.4, 101, 150, C);
else if(C>=55.5&&C<=150.4)
res = calcu(55.5, 150.4, 151, 200, C);
else if(C>=150.5&&C<=250.4)
res = calcu(150.5, 250.4, 201, 300, C);
else if(C>=250.5&&C<=350.4)
res = calcu(250.5, 350.4, 301, 400, C);
else if(C>=350.5&&C<=500.4)
res = calcu(350.5, 500.4, 401, 500, C);
printf("浓度C为%5.2f时,指数I为%5.2f\n", C, res);
return 0;
}
3.ハミング距離
タイトル:
等しい長さの2つのバイナリ文字列の
ハミング距離は、等しくない文字の数として定義され、ハミング距離はプログラミングによって計算されます。例:10010100と10000101の間の距離は2
コード:
#include<stdio.h>
#include<string.h>
const int maxn = 20;
int main()
{
char str1[maxn], str2[maxn];
int len, num;
scanf("%s", str1);
scanf("%s", str2);
len = strlen(str1);
num = 0;
for(int i=0;i<len;i++)
{
if(str1[i]!=str2[i])
num++;
}
printf("%s与%s的汉明距离为%d\n", str1, str2, num);
return 0;
}
4.李白はワインを買う
タイトル:
Li Baiは通りを歩いて、ワインを買うために鍋を拾います。お店が2重なら花を見てバケツを飲みます。Nお店と花に会い、水差しですべてのワインを飲みます。この水差しのワインの量を尋ねてください。入力Nをプログラミングし、元の酒の数と店と花に出会うプロセスを出力します。
例:入力N = 3、出力:元のワインの数は1バケットです。ショップが2倍になると、最初に2倍になります。つまり、1バケットが残っていて、2バケット残っています。初めてフラワードリンクが1バケットになると、残りの1バケットになります。2番目の出会いはショップです2倍にすると1バケツ追加して2バケツ残り、初めて花があれば1バケ残り1バケツ残ります。
コード:
#include<stdio.h>
int main()
{
int N;
scanf("%d", &N);
double res=0;
for(int i=0;i<N;i++)
res = (res+1)/2;
printf("原来有%6.3f斗酒\n",res);
int i=0;
while(res!=0)
{
i++;
printf("第%d遇店加一斗,剩下%6.3f\n", i, res*2);
printf("第%d遇花喝一斗,剩下%6.3f\n", i, res*2-1);
res = res*2-1;
}
return 0;
}