Arrays 找出数字是否相同#
我做了这个家庭作业,写了一个程序,读取用户输入的十个数字,并指出其中是否有相同的数字。 我已经有一年没有做任何编程了,所以我忘了很多东西,也没有找到任何与这个主题相关的东西。 我试着用field和if..else,但没用。有没有更快的方法来比较这些数字? 还是用其他方法解决这个问题 我的代码有点糟糕,但我没有想出更好的。代码是用我自己的语言编写的,但应该不会有问题。如果你能帮助我,我将不胜感激Arrays 找出数字是否相同#,arrays,c,printf,Arrays,C,Printf,我做了这个家庭作业,写了一个程序,读取用户输入的十个数字,并指出其中是否有相同的数字。 我已经有一年没有做任何编程了,所以我忘了很多东西,也没有找到任何与这个主题相关的东西。 我试着用field和if..else,但没用。有没有更快的方法来比较这些数字? 还是用其他方法解决这个问题 我的代码有点糟糕,但我没有想出更好的。代码是用我自己的语言编写的,但应该不会有问题。如果你能帮助我,我将不胜感激 for(i=0;i<=n;i++){ if (pole[0]==pole[2])
for(i=0;i<=n;i++){
if (pole[0]==pole[2])
printf("first and second number are identical");
else if (pole[0]==pole[3])
printf("prvé a tretie číslo sa rovnajú");
else if (pole[0]==pole[4])
printf("prvé a stvrte číslo sa rovnajú");
else if (pole[0]==pole[5])
printf("prvé a piate číslo sa rovnajú");
else if (pole[0]==pole[6])
printf("prvé a sieste číslo sa rovnajú");
else if (pole[0]==pole[7])
printf("prvé a siedme číslo sa rovnajú");
else if (pole[0]==pole[8])
printf("prvé a osme číslo sa rovnajú");
else if (pole[0]==pole[9])
printf("prvé a deviate číslo sa rovnajú");
else if (pole[0]==pole[10])
printf("prvé a desiate číslo sa rovnajú");
else if (pole[2]==pole[3])
printf("druhe a tretie číslo sa rovnajú");
else if (pole[2]==pole[4])
printf("druhe a stvrte číslo sa rovnajú");
else if (pole[2]==pole[5])
printf("druhe a piate číslo sa rovnajú");
else if (pole[2]==pole[6])
printf("druhe a sieste číslo sa rovnajú");
else if (pole[2]==pole[7])
printf("druhe a siedme číslo sa rovnajú");
else if (pole[2]==pole[8])
printf("druhe a osme číslo sa rovnajú");
else if (pole[2]==pole[9])
printf("druhe a deviate číslo sa rovnajú");
else if (pole[2]==pole[10])
printf("druhe a desiate číslo sa rovnajú");
else if (pole[3]==pole[4])
printf("tretie a stvrte číslo sa rovnajú");
else if (pole[3]==pole[5])
printf("tretie a piate číslo sa rovnajú");
else if (pole[3]==pole[6])
printf("tretie a sieste číslo sa rovnajú");
else if (pole[3]==pole[7])
printf("tretie a siedme číslo sa rovnajú");
else if (pole[3]==pole[8])
printf("tretie a osme číslo sa rovnajú");
else if (pole[3]==pole[9])
printf("tretie a deviate číslo sa rovnajú");
else if (pole[3]==pole[10])
printf("tretie a desiate číslo sa rovnajú");
else if (pole[4]==pole[5])
printf("stvrte a piate číslo sa rovnajú");
else if (pole[4]==pole[6])
printf("stvrte a sieste číslo sa rovnajú");
else if (pole[4]==pole[7])
printf("stvrte a siedme číslo sa rovnajú");
else if (pole[4]==pole[8])
printf("stvrte a osme číslo sa rovnajú");
else if (pole[4]==pole[9])
printf("stvrte a deviate číslo sa rovnajú");
else if (pole[4]==pole[10])
printf("stvrte a desiate číslo sa rovnajú");
else if (pole[5]==pole[6])
printf("piate a sieste číslo sa rovnajú");
else if (pole[5]==pole[7])
printf("piate a siedme číslo sa rovnajú");
else if (pole[5]==pole[8])
printf("piate a osme číslo sa rovnajú");
else if (pole[5]==pole[9])
printf("piate a deviate číslo sa rovnajú");
else if (pole[5]==pole[10])
printf("piate a desiate číslo sa rovnajú");
else if (pole[6]==pole[7])
printf("sieste a siedme číslo sa rovnajú");
else if (pole[6]==pole[8])
printf("sieste a osme číslo sa rovnajú");
else if (pole[6]==pole[9])
printf("sieste a deviate číslo sa rovnajú");
else if (pole[6]==pole[10])
printf("sieste a desiate číslo sa rovnajú");
else if (pole[7]==pole[8])
printf("siedme a osme číslo sa rovnajú");
else if (pole[7]==pole[9])
printf("siedme a deviate číslo sa rovnajú");
else if (pole[7]==pole[10])
printf("tretie a desiate číslo sa rovnajú");
else if (pole[8]==pole[9])
printf("osme a deviate číslo sa rovnajú");
else if (pole[8]==pole[10])
printf("osme a desiate číslo sa rovnajú");
else if (pole[9]==pole[10])
printf("deviate a desiate číslo sa rovnajú");
else
printf("there are no identical number");
}
return 0;
}
用于(i=0;i嵌套循环
for (int i = 0; i < n - 1; i++)
for (int j = i + 1; j < n; j++)
if (pole[i] == pole[j]) {...}
for(int i=0;i
您在代码开头有一个for循环,但您没有使用它,最干净的解决方案是使用2 for循环,如下所示:
int f = 0;
for(int i=0;i<=n;i++){
for(int j=0;j<i;j++){
if(pole[i] == pole[j]){
printf("number at position %d is equal to number at position %d",i,j);
f = 1;
}
}
}
if (f == 0)
printf("There are no identical numbers");
intf=0;
对于(int i=0;iint flag=0;
对于(int i=0;i感谢您的回复,这对我帮助很大,我学到了一些东西。我更改了代码,无论我做什么,它总是显示“没有相同的数字”。我不知道是什么原因,我没有希望了
int pole[10];
int i,n,j;
for (i = 0; i <10; i++ ){
printf ("\n Zadaj [%d] prvok pola: ",i);
scanf ("%d",&pole[i]);
}
int f=0;
for( i=0;i<=n;i++){
for( j=0;j<i;j++){
if(pole[i] == pole[j]){
printf("number at position %d is equal to number at position %d",i,j);
}
}
}
if (f == 0)
printf("There are no identical numbers");
intpole[10];
int i,n,j;
对于(i=0;我欢迎这么说。你在标题中提到了C#,但它完全是C。关于代码,你应该再次阅读关于循环的章节。两个嵌套的循环应该可以做到这一点,并使代码看起来更干净。请展示一些智能,例如使用循环!
int pole[10];
int i,n,j;
for (i = 0; i <10; i++ ){
printf ("\n Zadaj [%d] prvok pola: ",i);
scanf ("%d",&pole[i]);
}
int f=0;
for( i=0;i<=n;i++){
for( j=0;j<i;j++){
if(pole[i] == pole[j]){
printf("number at position %d is equal to number at position %d",i,j);
}
}
}
if (f == 0)
printf("There are no identical numbers");