我正在嘗試撰寫一個程式,該程式在陣列中查找一個數字,說明該數字的位置以及 for 回圈已執行的次數。我正在努力解決我必須計算找到該數字所需的次數的部分。像這樣的東西:
int main(){
array[]=5,1,3,6,4,5,7,12,8,9,10;
int i = 0, number;
int NumberFound = 0;
printf("Enter the number you are looking for: \n");
scanf_s("%d", &number);
for (i = 0; i < 11; i ) {
if (number == data[i]) {
NumberFound = 1; //Number was found
printf("%d was found in the position %d\n", number, i);
break;
}
else {
NumberFound = 0;
}
}
if (NumberFound == 0) {
printf("%d was not found \n", number);
}
return 0;
}
我仍然想實作 for 回圈已執行的次數。在控制臺上應該是這樣的:
Enter the number you are looking for:
3
Iteration 1
Iteration 2
3 was found in the position 2
uj5u.com熱心網友回復:
迭代次數為i 1。
for (i = 0; i < 11; i ) {
if (number == data[i]) {
printf("%d was found in the position %d\n", number, i);
break;
} else {
printf("Iteration %d\n", i 1);
}
}
您不需要NumberFound = 0;在else塊中進行設定,因為它已經包含了初始化時的設定。
uj5u.com熱心網友回復:
i按照
Barmar 的建議在中斷回圈之前列印 的值。
if (number == data[i]) {
NumberFound = 1; //Number was found
printf("%d was found in the position %d after %d iterations\n", number, I, i 1);
break;
}
uj5u.com熱心網友回復:
首先,此宣告中有錯別字
array[]=5,1,3,6,4,5,7,12,8,9,10;
看來你的意思
int array[] = { 5,1,3,6,4,5,7,12,8,9,10 };
也是data本宣告中使用的名稱
if (number == data[i]) {
未定義。
這個 else 陳述句
else {
NumberFound = 0;
}
沒有影響,可能會被洗掉。
其實這個變數NumberFound是多余的。您可以洗掉其宣告及其使用
int NumberFound = 0;
該程式可以如下所示
#include <stdio.h>
int main( void )
{
int array[] = { 5, 1, 3, 6, 4, 5, 7, 12, 8, 9, 10 };
const size_t N = sizeof( array ) / sizeof( *array );
int number = 0;
printf( "Enter the number you are looking for: " );
scanf( "%d", &number );
size_t i = 0;
while ( i < N && number != array[i] )
{
printf( "Iteration %zu\n", i );
}
if ( i == N )
{
printf( "%d was not found \n", number );
}
else
{
printf( "%d was found in the position %zu\n", number, i);
}
return 0;
}
轉載請註明出處,本文鏈接:https://www.uj5u.com/ruanti/336406.html
