我想创建这个程序:
用户输入10个不同的值。但是当用户输入相同的值时,程序会发出警告。我做了一些事情但是没有用。
如何为此程序创建工作算法?
#include<stdio.h>
#include<stdlib.h>
int main()
{
int x,i,j;
int dizi[10];
for (i = 0; i < 10; i++)
{
printf("%d. number\n", i + 1);
scanf_s("%d", &dizi[i]);
for (j = 0; j < 10; j++)
{
if (dizi[j] == dizi[i])
{
printf("You have already entered this number");
}
}
}
printf("Entered numbers:\n");
for (i = 0; i < 10; i++)
{
printf("%d\t", dizi[i]);
}
system("pause");
return 0;
}
答案 0 :(得分:0)
当您将警告减少i
减1时。
否则你不会得到10个不同的号码。
if (dizi[j] == dizi[i])
{
printf("You have already entered this number");
i--;
}
带j的内循环应该只检查到i。
for( int j=0; j<i; j++)
答案 1 :(得分:0)
将检查循环更改为
for (j = 0; j < i; j++)
否则支票将使用未初始化的数据进行检查。
答案 2 :(得分:0)
for (j = 0; j < i; j++)
{
if (dizi[j] == dizi[i])
{
printf("You have already entered this number\n");
--i;
break;
}
}