C言語クラシックプログラミング282ケース06

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

おすすめ

転載: blog.csdn.net/qq_41070511/article/details/110382967