我已經撰寫了程式,我猜有某種編碼錯誤。正常作業但查找和列印最大數字的輸入部分不是。
#include<stdio.h>
int main()
{
int i, arr[10],c=0;
for(i=1;i<=10;i )
{
printf("enter 10 nos. for arr[%d] :",i);
scanf("%d",&arr[i]);
}
for(i=1;i<=10;i )
{
while(arr[i]>c)
{
c=arr[i];
}
printf("Greatest number in a given array is:%d",c);
}
return 0;
}
uj5u.com熱心網友回復:
在 C 索引中,索引從 0 開始,因此for(i=1;i<=10;i )條件在兩個方面是錯誤的:您從第二個陣列項(缺少arr[0])開始,然后您將超出范圍,arr[i]當i為 10。
您也應該將其更改while為if,因為您實際上并不打算在那里有一個回圈。您只需要執行一次條件下的代碼。您還應該考慮當您的輸入中有負值時會發生什么。
最后但并非最不重要的一點 -如果您想列印出最終結果,printf可能應該在回圈之外。for
uj5u.com熱心網友回復:
如果您有一個宣告為的陣列
int a[N];
其中 N 是某個正整數值,那么訪問陣列元素的有效索引范圍是[0, N)。
這意味著例如這個 for 回圈
for(i=1;i<=10;i )
{
printf("enter 10 nos. for arr[%d] :",i);
scanf("%d",&arr[i]);
}
必須看起來像
for ( i = 0; i < 10; i )
{
printf("enter 10 nos. for arr[%d] :",i);
scanf("%d",&arr[i]);
}
這個while回圈
while(arr[i]>c)
{
c=arr[i];
}
只是沒有意義,可能是一個無限回圈。
此外,這個 printf 的呼叫
printf("Greatest number in a given array is:%d",c);
放置在 for 回圈中。
該程式可以如下所示
#include <stdio.h>
int main( void )
{
enum { N = 10 };
int arr[N];
printf( "Enter %d numbers:\n", N );
for ( int i = 0; i < N; i )
{
printf("\t%d: ", i 1 );
scanf( "%d", arr i );
}
int max = 0;
for ( int i = 1; i < N; i )
{
if ( arr[max] < arr[i] ) max = i;
}
printf( "The greatest number in the given array is: %d\n", arr[max] );
return 0;
}
uj5u.com熱心網友回復:
首先,陣列的索引從零開始,并且 arr[10] 超出范圍。
其次,將最小整數值賦給 c。
第三,將 while 更改為 if 并將第二個 printf() 放在第二個 for 陳述句之外。
uj5u.com熱心網友回復:
這應該作業
#include<stdio.h>
int main()
{
int i, arr[10],c=0;
for(i=1;i<=10;i )
{
printf("enter 10 nos. for arr[%d] :",i);
scanf("%d",&arr[i]);
}
for(i=1;i<=10;i )
{
if(arr[i]>c)
{
c=arr[i];
}
}
printf("Greatest number in a given array is:%d",c);
return 0;
}
uj5u.com熱心網友回復:
這是代碼
#include <stdio.h>
int main() {
// Taking Variables
int a[10];
int i;
int greatest;
//Taking exactly 10 inputs in an array by using for loop
printf("Enter ten values:");
for (i = 0; i < 10; i ) {
scanf("%d", &a[i]);
}
//Iterating through the array and comparing all the values, the one which is the greatest of all is printed
greatest = a[0];
for (i = 0; i < 10; i ){
if (a[i] > greatest){
greatest = a[i];}
}
printf("Greatest of ten numbers is %d", greatest);
return 0;
}
轉載請註明出處,本文鏈接:https://www.uj5u.com/qiye/416891.html
標籤:
