030数値定数の使用
C言語の一般的な数値定数は、整数定数と実定数です。定数が異なれば、要件も異なります。
要件:10進数、8進数、および16進数の形式で出力:123、次に標準の10進数および科学的形式で浮動小数点数の形式で123.4を出力する
#include<stdio.h>
#include<math.h>
#include<time.h>
#include<stdlib.h>
main()
{
int i = 123;
float j = 123.4;
printf("%4d\n", i); //输出十进制
printf("%4x\n", i); //输出十六进制
printf("%4o\n", i); //输出八进制
printf("%4f\n", j); //输出浮点数
printf("\n");
}
031文字変数の使用
4文字の変数を定義し、これらの4文字の変数に値を割り当ててから、outputステートメントを使用してそれらを出力します
#include<stdio.h>
#include<math.h>
#include<time.h>
#include<stdlib.h>
main()
{
char a, b, c, d;
a = 'A';
b = 'B';
c = 'C';
d = 'D';
printf("%5c%5c%5c%5c", a, b, c, d );
printf("\n");
}
032 100〜200の素数を見つける
プライム数(プライム数)は、プライム数とも呼ばれ、1より大きい自然数の数と、他の自然数で割り切れない数自体を指します(のみの数として定義することもできます)。 2つの正の要因:1と数自体)。
使用法は试除法
比較的簡単ですが、時間がかかります。テストする自然数が} nであり、この方法を使用する人は、2からsqrt {n}までの整数を1つずつテストして、それらはnを割ることができます。
// 试除法(官方)
让i被2~ sqrt(i),如果i能被2~sqrt(i)之间的任何一个整数整除,则循环结束,
若不能被整除,则要判断j是否是最接近或等于sqrt(i),是证明是素数,
#include<stdio.h>
#include<math.h>
#include<time.h>
#include<stdlib.h>
main()
{
int i, j, n = 0;
for(i = 100; i <= 200; i++)
{
for(j = 2; j <= sqrt(i); j++)
{
if(i % j == 0)
{
break;
}
else
{
if(j > sqrt(i) - 1)
{
n++;
printf("%5d", i);
if(n % 5 == 0)
{
printf("\n");
}
}
else
{
continue;
}
}
}
}
printf("\n");
}
//—————————— ME ——————————————————————
#include<stdio.h>
#include<math.h>
#include<time.h>
#include<stdlib.h>
int ss(int i)
{
int m;
if(i == 1)
{
return 0;
}
if(i == 2)
{
return 1;
}
for(m = 2; m < i; m++)
{
if(i % m == 0)
{
return 0;
}
else if( i != m + 1)
{
continue;
}
else
{
return 1;
}
}
}
main()
{
int i, j, n = 0;
for(i = 100; i <= 200; i++)
{
j = ss(i);
if(j)
{
n++;
printf("%5d", i);
if(n % 5 == 0)
{
printf("\n");
}
}
}
printf("\n");
}
033#output三角形を使用
エスケープ文字\ 40を使用して、output#と組み合わせてスペースを出力します。
#include<stdio.h>
#include<math.h>
#include<time.h>
#include<stdlib.h>
main()
{
char a;
a = '#';
printf("\40\40%c\n", a);
printf("\40%c\40%c\n", a, a);
printf("%c\40%c\40%c\n", a, a, a);
printf("\n");
}
//_____ me ______
#include<stdio.h>
#include<math.h>
#include<time.h>
#include<stdlib.h>
main()
{
printf(" # \n");
printf(" # #\n");
printf("# # #\n");
printf("\n");
}
03410進数を2進数に変換
- キーポイント:配列を使用して、毎回2の余りをとった結果を格納します。データ型を定義するときは、配列を定義し、すべてのデータ要素を初期値0に割り当てます。
- 最初のループでは、2の余りをとった結果が配列に格納されるたびに、a [0]から格納されます。したがって、出力は逆の順序である必要があります。
- %残りを探します。
———————— 官方 ——————————
#include<stdio.h>
#include<math.h>
#include<time.h>
#include<stdlib.h>
main()
{
int i, j = 0, n, m;
int a[16] =
{
0
};
system("cls");
printf("请输入一个十进制数(0 ~ 32767)\n");
scanf("%d", &n);
for(m = 0; m < 15; m++)
{
i = n % 2;
j = n / 2;
n = j;
a[m] = i;
}
for(m =15; m >= 0; m-- )
{
printf("%d ", a[m]);
if(m % 4 == 0)
{
printf(" ");
}
}
printf("\n");
}
————ME——————
#include<stdio.h>
#include<math.h>
#include<time.h>
#include<stdlib.h>
main()
{
int i, j = 0, n, m;
int a[12];
scanf("%d", &i);
while( i / 2 != 0)
{
m = i % 2;
a[j] = m;
j++;
i = i / 2;
}
if( i / 2 == 0)
{
a[j] = i % 2;
j++;
}
for(n = j - 1; n >= 0; n-- )
printf("%d ", a[n]);
printf("\n");
}
036n基数を10進数に変換
任意の数値を入力して10進数を入力すると、10進数に変換されて出力されます。
-
文字配列aを使用してn基数を格納し、配列内の各要素を判断します。
-
数字は0〜9ですか
t = a[i] - '0';
- 手紙ですか
t = a[i] - 'A' + 10;
#include<stdio.h>
#include<math.h>
#include<time.h>
#include<stdlib.h>
#include<string.h>
main()
{
long t1;
int i, n, t, t3;
char a[10];
printf("请输入一个n进制数\n");
gets(a); //输入n进制数存到数组a中
strupr(a); //将a中的小写字母转换成大写字母
t3 = strlen(a); //求出数组a的长度
t1 = 0;
printf("请输入是几进制\n");
scanf("%d", &n);
for(i = 0; i < t3; i++)
{
if(a[i] - '0' >= n && a[i] < 'A' || a[i] - 'A' + 10 >= n)
{
printf("输入有误!!");
exit(0);
}
if(a[i] >= '0' && a[i] <= '9')
{
t = a[i] - '0';
}
else if(n >=11 && (a[i] >= 'A' && a[i] <= 'A' + n - 10))
{
t = a[i] - 'A' + 10;
}
t1 = t1 * n + t; //求出十进制
}
printf("十进制形式是:%1d\n", t1);
printf("\n");
}