C語学コース体験(4)

例:

1.追加の変数を使用せずに2つの変数aとbの値を交換します。
(1)加算と減算:
#include <stdio.h>
int main()
int a = 3;
int b = 5;
a = a + b;
b = ab; //元のaが現在のbaに割り当てられているa
= ab; //元のbが現在のaに割り当てられているreturn0
;
}
問題:整数オーバーフロー、つまりa + bによって取得された値が可能整数
(2)XORメソッドの最大制限を超えています
#include <stdio.h>
int main()
int a = 3; 0011
int b = 5; 0101
a = a ^ b; a = 0110
b = a ^ b ; b = 0011
a = a ^ b; a = 0101
return 0;
}
キャリーがないため、現時点ではオーバーフローは発生しません。
通常、企業では3番目の変数メソッドが使用され、コードは読み取り可能で効率的です。
2.空でない整数配列を指定すると、1回だけ表示される要素を除いて、1つおきの要素が2回表示され、1回だけ表示される要素を見つけます。
例:int a [] = {1,2,3,4,5,1,2,3,4}; 5つだけが配列に1回表示され、残りはペアで表示されます。5を調べてください。
アイデア:
2つのネストは、各番号の出現回数をカウントし、番号が1の場合に出力します。
暴力的な解決方法:
特定のコード:
#define _CRT_SECURE_NO_WARNINGS 1
#include <stdio.h>

int main(){
int arr [] = {1,2,3,4,5,1,2,3,4};
int i、p;
int count;
for(i = 0; i <= 8; + + i){
count = 0;
for(p = 0; p <= 8; ++ p){
if(arr [i] == arr [p]){
count + = 1;
}
}
if(count == 1){
printf( "%d"、arr [i]);
}
}
return 0;
}
賢いXORメソッド:
最初:
a ^ a = 0 0 ^ a = a
a ^ b ^ a = ba ^ a ^ b = b(排他的ORには可換法があります)
なので、1 ^ 2 ^ 3 ^ 4 ^ 5 ^ 1 ^ 2 ^ 3 ^ 4 = 1 ^ 1 ^ 2 ^ 2 ^ 3 ^ 3 ^ 4 ^ 4 ^ 5 = 5
が見つかります注文した番号の
特定のコード:
#define _CRT_SECURE_NO_WARNINGS 1
#include <stdio.h>

int main(){
int arr [] = {1,2,3,4,5,1,2,3,4};
int i;
int sum = arr [0];
for(i = 1; i <= 8; ++ i){
sum = sum ^ arr [i];
}
printf( "%d \ n"、sum);
return 0;
}
時間の複雑さ:O(n)です
が、複数の単一値は機能しません
3
実行するシャットダウンプログラムプログラムを作成し、次のように入力すると、コンピュータは1分でシャットダウンします:私は豚です、シャットダウンをキャンセルします
システムで、shutdownコマンドにshutdown -s -t 60(60秒後にシャットダウン)と入力
してシャットダウンします-aは
C言語のshutdownコマンドをキャンセルしますsystem( "shutdown -s -t 60");
system( "shutdown -a");を使用してキャンセルします
システムは#include <stdlib.h>を導入する必要があります

strcmp関数

使用法:
strcmp(arr1、arr2)strcmp
(arr、 "abc")配列がabcの場合、関数は0を返します。前者が後者よりも小さい場合、複素数は前者よりも大きくなり、正の数が返されます。
この関数を追加する必要があります#include <string.h>
特定の関数:
#define _CRT_SECURE_NO_WARNINGS 1
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
int main(){
char arr [] = "";
// system( "shutdown -s -t 60 ");
再び:
printf("コンピュータは60
秒でシャットダウンします: "); scanf("%s "、arr);
if(strcmp(arr、" pig ")== 0)
{
//システム( "shutdown -a");
printf( "ok");
}
else
{
goto again;
}
return 0;
}

おすすめ

転載: blog.51cto.com/15079723/2589169