La clé de cette question est de séparer les nombres. Vous pouvez utiliser cette méthode pour séparer. Par exemple, utilisez 119 pour obtenir la séparation. Selon la question, le résultat est 1+1+9=11, n'est-ce pas ? de cette façon, (1) En utilisant 119 %10, le reste après avoir divisé 119 par 10 est 9, n'est-ce pas ? Si vous êtes intelligent, vous devriez avoir découvert que 9 a été séparé maintenant. (2) Ensuite, séparez les chiffres des dizaines. Le résultat de 119/10 ne peut être qu'un nombre entier, qui est 11, n'est-ce pas ? et le reste après avoir divisé 11 par 10 est 1, n'est-ce pas ? Est-ce que 1 est à nouveau séparé ? (3) Finalement, c'est le chiffre des centaines. Le résultat de 11/10 est 1, n'est-ce pas, et le chiffre des centaines est également séparé (4) Au final, il suffit de les additionner.
La condition finale de séparation est lorsque le résultat divisible est inférieur à 10.
Pendant le processus de séparation, nous pouvons utiliser des tableaux pour stocker les nombres séparés.
Le code spécifique est le suivant :
/*La méthode 1 est une méthode récursive je pense que cette méthode est la plus simple et la meilleure à comprendre*/
#inclure
int show(int num)
{
si(num
numéro de retour;/*sortie récursive*/
autre
retourner num%10+show(num/10);
}
void main()
{
int num,somme;
printf("Veuillez saisir un entier :");
scanf("%d",&num);
sum=show(num);
printf ("Le résultat de la somme de chaque chiffre est : %dn",sum);
}
/*La méthode 2 est réalisée à l'aide de tableaux. La méthode est peut-être trop compliquée. Ne la suggérez pas. Si vous avez de bonnes méthodes, partagez-les*/
.#inclure
void main()
{
valeur int[10];
int num;
printf("Veuillez saisir un entier :");
scanf("%d",&num);
pendant(num=10000)
{
printf ("Ce code ne prend actuellement en charge que le calcul des nombres à 4 chiffres inférieurs à 10 000, et l'entier saisi n'est pas valide ! Veuillez ressaisir :"
) ;scanf("%d",&num);
}
if(num>=0&num
printf ("Le résultat est : %dn",num);
sinon si(num>=10&num
{
valeur[0]=num%10;
valeur[1]=num/10;
printf ("Le résultat est : %dn", valeur[0]+valeur[1]);
}
sinon si(num>=100&num
{
value[0]=num%10; /*chiffres séparés*/
value[1]=num/10; /*Obtenir le nouveau numéro à séparer*/
value[2]=value[1]%10; /*Dizaines séparées*/
value[3]=value[1]/10; /*Obtenir le chiffre des centaines*/
printf ("Le résultat est : %dn", valeur[0]+valeur[2]+valeur[3]);
}
autre
{
value[0]=num%10; /*chiffres séparés*/
value[1]=num/10; /*Obtenir le nouveau numéro à séparer*/
value[2]=value[1]%10; /*Dizaines séparées*/
value[3]=value[1]/10; /*Obtenir le nouveau nombre à séparer*/
value[4]=value[3]%10; /*Obtenir le chiffre des centaines*/
value[5]=value[3]/10; /*Obtenir le nombre en milliers*/
printf ("Le résultat est : %dn", valeur[0]+valeur[2]+valeur[4]+valeur[5]);
}
}
#inclure
principale()
{ int a[ ]={1,2,3,4,5,6,7,8,9,0},*p; //Un tableau de 10 éléments est défini, chaque élément est de type int, et Un pointeur p est défini.
p=a; //p le pointeur pointe vers le tableau a
printf ("%xn",p); //La sortie affiche l'adresse de p en hexadécimal,
printf ("%xn",p+9); //p+9 signifie déplacer l'adresse d'une distance de type 9 int puis la changer en affichage hexadécimal,
}
Si vous voulez vraiment imprimer l'adresse, utilisez simplement le format %p. La valeur par défaut est hexadécimale. L'effet est le même que %x, mais certaines opérations sont omises.
Si une variable de type int occupe 2 octets,
La sortie de la première instruction printf est 194, puis le résultat de la deuxième instruction printf est
Cette question revient à vous demander combien d'octets sont occupés du premier élément au dernier élément
0x194 +2* 9=
Faites le calcul vous-même, je suis trop paresseux pour me convertir.
194 représente la première adresse du tableau en hexadécimal. Un type Int occupe 2 octets, donc la distance pour déplacer 9 éléments est de 2*9 octets, puis l'adresse est affichée.
Cela va en profondeur dans le format de représentation du type dans la mémoire. N'oubliez pas que +1 signifie la distance pour déplacer un type d'élément.
Première question :
#include "stdio.h"
void main()
{int a[10];
int i,max;
pour(i=0;i
scanf("%d,",&a[i]);
max=a[0];
pour(i=1;i
{
si(max
max=a[i];
}
printf("La valeur maximale est : %d",max);
}
Deuxième question :
#include "stdio.h"
void main()
{
int i,a[10];
long int sum /*la somme est le score total*/
moyenne flottante ; /*moyenne*/
pour(i=0;i
{
printf ("Veuillez saisir le score de l'élève %d:", (i+1));
scanf("%d",a[i]);
printf("n");
}
pour(i=0;i
somme=somme+a[i];
moyenne=somme/10.0;
printf("La note moyenne de 10 élèves est : %f",moyenne);
}
Question 3 :
#include "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];
pour(i=0;i
c[i]=a[i]+b[i];
pour(i=0;i
printf("%d,",c[i]);
}
Question 4 :
#include "stdio.h"
{
int i,a[100];
int cx;
pour(i=1;i
{
a[i]=i+2;
}
scanf("Entrez la valeur que vous souhaitez interroger : %d",cx);
pour(i=0;i
if(cx==a[i])
{
printf ("Le %dth nombre est la valeur que vous souhaitez interroger !"
);pause;
}
autre
printf ("La valeur que vous avez saisie n'est pas dans ce tableau");
}Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!