0
私はこのコードを実行し、エラーを超える時間を得ました。配列のサイズ、要素、シフト幅を指定して循環右シフトを実装しています。なぜこれが実行問題を引き起こしているのか理解しています。配列時のCの循環右シフトが無限ループを超えていますか?
#include<stdio.h>
void main()
{
int n,i;
//array size input
scanf("%d",&n);
int a[n];
//array elements input
for(i=0;i<n;i++)
{
scanf("%d",&a[i]);
}
// shift amount input
int s,temp;
scanf("%d",&s);
//single right shift for S number of times
for(i=0;i<s;i++)
{
temp=a[n-1];
for(i=n-1;i>0;i--)
a[i]=a[i-1];
a[0]=temp;
}
//Output of shifted array
for(i=0;i<n;i++)
{
printf("%d\n",a[i]);
}
}
は 'int'が' 'main()のための唯一の標準的な戻り値の型であることに注意してください。 – NathanOliver
おそらくネストされた 'for'ループと関係しています。より効率的な方法を探してください。 – dbush
内側と外側のネストされた 'for'ループの両方に同じインデックス変数' i'を使用しています。 – markgz