c语言关于循环嵌套的!!!!

时间:2021-03-28 22:19:52
编写一个程序,创建两个8元素的double数组,使用一个循环来让用户键入第一个数组的8个元素的值。程序把第二个数组的元素设置为第一个数组元素的累积和。例如,第二个数组的第4个元素应该等于第一个数组的前4个元素的和,第二个数组的第5个元素应该等于第一个数组的前5个元素的和(使用嵌套循环可以做到这一点)。最后,使用一个循环来显示两个数组中的内容,第一个数组在一行中显示,而第二个数组中的每个元素在第一个数组的对应元素之下进行显示。

要求:1.设置第二个数组时使用循环的嵌套!!!
      2.用for循环解决问题!!!!!!!
      3.用c语言解决!!!
 


下面这是我写的,是个错的!!!我自己都搞晕了。尽量帮忙修改修改吧!!!谢谢!!!



//是个错的  没写完!!!!!!!!!!!!!!!!!!!!!


#include<stdio.h>
int main(void)
{
double cha[8];
double chb[8];
double value;
int i,j;
printf("input the 1st array:\n");
for(i=0;i<8;i++)
scanf("%ld",&cha[i]);
for(i=0;i<8;i++)
{
for(j=1,chb[0]=cha[0],value=cha[1]+cha[0];j<i+2;j++)
{
chb[j]=value;
value+=cha[j-1];

}

for(i=0;i<8;i++)
printf("%5.1lf",cha[i]);
printf("\n");
for(j=0;j<8;j++)
printf("%5.1lf",chb[j]);


}
return 0;

}

6 个解决方案

#1



int a[8]={1,2,3,4,5,6,7,8};
int b[8];
int temp=0;
int j,i;
for(i=0;i<8;i++)
{
    for(j=0;j<=i;j++)
    {
     temp+=a[j];
     }
     b[i]=temp;
     temp=0;

}

#2



double fArray[8], fArraySum[8];
for (int i = 0; i != 8; ++i)
{
printf("请输入第%d个数字:\n", i+1);
scanf("%lf", &fArray[i]);
double sum = 0;
for (int j = 0; j <= i; ++j)
{
sum += fArray[j];
}
fArraySum[i] = sum;
}
printf("第一个数组:\n");
for (i = 0; i != 8; ++i)
{
printf("%lf ", fArray[i]);
}
printf("\n");
printf("第二个数组:\n");
for (i = 0; i != 8; ++i)
{
printf("%lf ", fArraySum[i]);
}
printf("\n");

#3


#include<stdio.h>
main()
{
  double arr1[8],arr2[8],sum=0;
  int i,j;
  printf("请输入8个数字:");
  for (i=0;i<8;i++)
  {
     
 scanf("%lf",&arr1[i]);

  }
  for (j=0;j<8;j++)
  {
 sum=0;
 for (i=0;i<=j;i++)
 {
    sum+=arr1[i];
 }
 arr2[j]=sum;

  }

   printf("第一个数组:\n");
    for (i = 0; i<8; i++)
    {
        printf("%lf ", arr1[i]);
    }

    printf("\n");

    printf("第二个数组:\n");
    for (i = 0; i<8; i++)
    {
        printf("%lf ", arr2[i]);
    }
    printf("\n");


}
看看这个吧,好使。。。。

#4


可行!
引用 2 楼  的回复:
C/C++ code

double fArray[8], fArraySum[8];
    for (int i = 0; i != 8; ++i)
    {
        printf("请输入第%d个数字:\n", i+1);
        scanf("%lf", &amp;fArray[i]);
        double sum = 0;
        for (int……

#5


输入格式错误。

#6


引用 1 楼  的回复:
C/C++ code

int a[8]={1,2,3,4,5,6,7,8};
int b[8];
int temp=0;
int j,i;
for(i=0;i<8;i++)
{
    for(j=0;j<=i;j++)
    {
     temp+=a[j];
     }
     b[i]=temp;
     temp=0;

}


++

#1



int a[8]={1,2,3,4,5,6,7,8};
int b[8];
int temp=0;
int j,i;
for(i=0;i<8;i++)
{
    for(j=0;j<=i;j++)
    {
     temp+=a[j];
     }
     b[i]=temp;
     temp=0;

}

#2



double fArray[8], fArraySum[8];
for (int i = 0; i != 8; ++i)
{
printf("请输入第%d个数字:\n", i+1);
scanf("%lf", &fArray[i]);
double sum = 0;
for (int j = 0; j <= i; ++j)
{
sum += fArray[j];
}
fArraySum[i] = sum;
}
printf("第一个数组:\n");
for (i = 0; i != 8; ++i)
{
printf("%lf ", fArray[i]);
}
printf("\n");
printf("第二个数组:\n");
for (i = 0; i != 8; ++i)
{
printf("%lf ", fArraySum[i]);
}
printf("\n");

#3


#include<stdio.h>
main()
{
  double arr1[8],arr2[8],sum=0;
  int i,j;
  printf("请输入8个数字:");
  for (i=0;i<8;i++)
  {
     
 scanf("%lf",&arr1[i]);

  }
  for (j=0;j<8;j++)
  {
 sum=0;
 for (i=0;i<=j;i++)
 {
    sum+=arr1[i];
 }
 arr2[j]=sum;

  }

   printf("第一个数组:\n");
    for (i = 0; i<8; i++)
    {
        printf("%lf ", arr1[i]);
    }

    printf("\n");

    printf("第二个数组:\n");
    for (i = 0; i<8; i++)
    {
        printf("%lf ", arr2[i]);
    }
    printf("\n");


}
看看这个吧,好使。。。。

#4


可行!
引用 2 楼  的回复:
C/C++ code

double fArray[8], fArraySum[8];
    for (int i = 0; i != 8; ++i)
    {
        printf("请输入第%d个数字:\n", i+1);
        scanf("%lf", &amp;fArray[i]);
        double sum = 0;
        for (int……

#5


输入格式错误。

#6


引用 1 楼  的回复:
C/C++ code

int a[8]={1,2,3,4,5,6,7,8};
int b[8];
int temp=0;
int j,i;
for(i=0;i<8;i++)
{
    for(j=0;j<=i;j++)
    {
     temp+=a[j];
     }
     b[i]=temp;
     temp=0;

}


++