[ad_1]
C++
#include <iostream> #include <cmath> using namespace std; unsigned numDigits(const unsigned n) { if (n < 10) return 1; return 1 + numDigits(n / 10); } unsigned rotated_number(const unsigned a,const unsigned n){ unsigned int e,divide_by,rotated_number,f; divide_by = pow(10,n - 1); e = a%10; f = a/10; rotated_number = e * divide_by + f; return rotated_number; // std::cout << rotated_number << std::endl; } unsigned square_sum(unsigned n){ int sum=0; while(n!=0) { sum = sum + (n%10) * (n%10); n = n/10; } // std::cout << sum << std::endl; return sum; } int main() { unsigned int a,length,ssd,number_obtained,r_n,_z,new_rpm=0,n=0,max_rpm; std::cin >> a; max_rpm = a * 8; while(n < 1 && a < max_rpm){ // std::cout << a << std::endl; number_obtained = square_sum(a) * 323; // std::cout << number_obtained << std::endl; length = numDigits(a); // std::cout << length << std::endl; r_n = rotated_number(a,length)%100; // std::cout << r_n << std::endl; new_rpm = number_obtained + r_n; // std::cout << _z << std::endl; // new_rpm = new_rpm + _z; // std::cout << new_rpm << std::endl; a = new_rpm; // std::cout << a << std::endl; n = n + 1; } std::cout << a << std::endl; }
私が試したこと:
C言語に変換
試したけどできなかった
この C++ コードを C コードに変換します
解決策 1
これはコード翻訳サービスではありません。それを行うためにここにいるわけではありません。
よく見ると一部を除いて cin
と cout
行、それはすでに C です。
それらを交換する方法に対処できない場合は、おそらくコースに参加するべきではありません。
しかし…あなたの家庭教師はこのようなサイトを知っていて、提出したコードをあなたが書いたものではないことを十分に認識していることを理解する必要がありますか? 多くの人が盗作を非常に真剣に扱います…
解決策 2
print() やいくつかのスキャンなどの C の入出力関数を使用するだけで十分です。 これはこれで説明されています C 入出力のチュートリアル.
解決策 3
すでに指摘したように オリジナルハンドル と カーステンK、そのようなコードは非常に C
のように (の特有の機能を使用しません。 C++
) であり、すでに ほとんど C
-互換性。 実際のところ、含まれているヘッダー ファイルと 2 つのアクティブな I/O 呼び出しのみを対応するものに置き換えることができました。 C
を使用してコンパイル (および実行) します。 C
コンパイラ。 同じことができるはずです。
解決策 9
日曜日
ファッション
火曜日
日曜日
月曜日
日曜日
解決策 5
変換は簡単です:
1. ファイルの名前を .cpp から .c に変更します
2. インクルードを次のように置き換えます。
C
// #include <iostream> // #include <cmath> // using namespace std; #include <stdio.h> #include <math.h>
3.次に交換します
std::cin with scanf()
と
std::cout with printf()
構文を確認して完了です。
[ad_2]
コメント