この質問のポイントは、数値を区切ることです。この方法を使用して区切ることができます。たとえば、119 を使用すると、区切ることができます。質問によると、結果は 1 1 9 = 11 ですよね? で区切ることができます。このように、 (1) 119 を使用すると、119 を 10 で割った余りは 9 になりますね。賢い方なら、もう 9 が区切られていることに気づいたはずです (2) 次に、10 の位を区切ります。119/10 の結果は 11 だけです。整数になりますよね。次に、11 と 11 を次の値で割ります。 10個で、残りは1ペアです。バー?また 1 が分離されるのか? (3) 最後に百の位です。11/10 の結果は 1 ですよね。百の位も分離されます。 (4) 結局は足すだけです。
分離の終了条件は整数除算結果が10未満の場合です。
分離プロセス中に、配列を使用して分離された数値を保存できます。
具体的なコードは次のとおりです:
/*方法 1 は再帰的方法です。この方法の方がシンプルで理解しやすいと思います*/
####含む ######int show(int num)
if(数値 return num;/*再帰的終了*/
###それ以外### return num show(num/10);
}
void main()
{
int num,sum;
printf ("整数を入力してください:");
scanf("%d",#);
sum=表示(番号);
printf ("各桁の合計の結果は次のとおりです: %d\n",sum);
}
/*方法 2 は配列を使用して行われます。この方法は複雑すぎる可能性があります。提案しないでください。良い方法があれば共有してください*/
####含む ######
void main(){
int 値[10];
printf ("整数を入力してください:");
scanf("%d",#);
while(num
=10000){
printf (「このコードは現在、10000 未満の 4 桁の数値の計算のみをサポートしています。入力された整数は無効です。再入力してください:」);
scanf("%d",#);
}
if(数値>=0&数値
printf("結果は: %d\n",num);
else if(num>=10&num
{
値[0]=番号 ;
値[1]=数値/10;
printf ("結果は: %d\n", value[0] value[1]);
}
else if(num>=100&num
{
value[0]=num; /*1 桁の区切り*/
value[1]=num/10; /*分割する新しい数値を取得*/
value[2]=value[1]; /*10 桁ずつ区切ります*/
value[3]=value[1]/10; /*百の位を取得*/
printf ("結果は: %d\n", value[0] value[2] value[3]);
}
###それ以外###{
value[0]=num; /*1 桁の区切り*/
value[1]=num/10; /*分割する新しい数値を取得*/
value[2]=value[1]; /*10 桁ずつ区切ります*/
value[3]=value[1]/10; /*分割する新しい数値を取得*/
value[4]=value[3]; /*百の位を取得*/
value[5]=value[3]/10; /*千単位の数値を取得*/
printf ("結果は: %d\n", value[0] value[2] value[4] value[5]);
}
}
C 言語の配列に関する質問 C の専門家が役立ちます
####含む### ###主要()###{ int a[ ]={1,2,3,4,5,6,7,8,9,0},*p; //10 個の要素の配列が定義されており、各要素は int 型です、また p ポインターも定義します。
p=a; //p ポインタは配列 a
を指しますprintf (“%x\n”,p); //出力には、p のアドレスが 16 進数で表示されます、
printf (“%x\n”,p 9);//p 9 は、アドレスを int 型 9 個分移動して 16 進数表示に変更することを意味します。
本当にアドレスを出力したい場合は、%p 形式を使用してください。デフォルトは 16 進数です。効果は %x と同じですが、一部の操作が省略されます。
int 型の変数が 2 バイトを占める場合、
最初の printf ステートメントの出力は 194、2 番目の printf ステートメントの出力結果は
この質問は、最初の要素から最後の要素までに何バイトが占有されているかを尋ねることを意味します。
0x194 2* 9=自分で計算してください。変換するのが面倒です。
194は配列の先頭アドレスを16進数で表しており、Int型は2バイトなので9要素移動する距離は2*9バイトとなりアドレスが表示されます。
これは、メモリ内の型の表現形式について詳しく説明します。1 は要素型を移動する距離を意味することを覚えておいてください。
配列に関する C 言語プログラミングの簡単な質問です。ありがとう!
最初の質問:
#「stdio.h」を含める
void main()
{int a[10];
int i,max;
for(i=0;i scanf("%d,",&a[i]);
for(i=1;i {
if(最大
max=a[i];
}
printf("最大値は: %d",max);
}
2 番目の質問:
#「stdio.h」を含める
void main()
{
int i,a[10];
long int sum; /*sum は合計スコアです*/
浮動小数点平均; /*平均*/
for(i=0;i {
printf ("学生 %d の得点を入力してください:", (i 1));
scanf("%d",a[i]);
printf("\n");
}
for(i=0;i sum=合計 a[i];
平均=合計/10.0;
printf("10 人の生徒の平均点は: %f", Average);
}
3 番目の質問:
#「stdio.h」を含める
void main()
{
int a[10]={1,2,3,4,5,6,7,8,9,10};
int b[10]={2,4,6,8,10,12,14,16,18,20};
int c[10];
for(i=0;i
c[i]=a[i] b[i];
for(i=0;i
printf("%d,",c[i]);
}
質問 4:
#「stdio.h」を含める
{
int i,a[100];
int cx;
for(i=1;i
{
a[i]=i 2;
}
scanf("クエリしたい値を入力してください: %d",cx);
for(i=0;i
if(cx==a[i])
{
printf ("%d の数値はクエリしたい値です!");
###壊す;###}
###それ以外###printf ("入力した値はこの配列にありません");
}
以上が整数の桁の合計を計算するプログラムを C 言語で作成します。の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。