求使用数组进行程序设计

发布网友

我来回答

1个回答

热心网友

//全部习题的源码如下
//第1题源码
#include <stdio.h>

#define N 30

int main (void)
{
int mol[N],den[N]; //定义分子分母数组
double sum=0;
int i;

mol[0]=1,den[0]=2;
for(i=0; i<N; i++){
sum += (1.0*mol[i])/den[i];
mol[i+1]=den[i];
den[i+1]=mol[i]+den[i];
}
printf("sum = %.6lf\n", sum); //sum = 18.458635
return 0;
}

//第2题源码
#include <stdio.h>

#define N

void insert(int *a, int len, int s)
{
int i,pos;
if(s >= a[len-1]){
a[len] = s;
return;
}
for(pos=i=0;i<len;i++)
if(s > a[i] && s <= a[i+1]){
pos = i+1;
break;
}
for(i=len; i>=pos; i--)
a[i] = a[i-1];
a[pos] = s;
}

int main (void)
{
int arr[N] = {3,6,9,12,17,21,31,34,40,55};
int len = 10;
int i,n;

printf("Input n: ");
scanf("%d", &n);
insert(arr, len, n);
for(i=0;i<len+1;i++)
printf("%d ", arr[i]);
printf("\n");

return 0;
}

//第3题源码
#include <stdio.h>

#define MAX 51

int main (void)
{
char string[MAX]={0},ch;
int i=0;
int upper,lower,digit,blank,others;

upper=lower=digit=blank=others=0;
printf("Input a string:\n");
while((ch=getchar()) != '\n'){
string[i] = ch;
if(string[i]>='A' && string[i]<='Z')
upper++;
else if(string[i]>='a' && string[i]<='z')
lower++;
else if(string[i]>='0' && string[i]<='9')
digit++;
else if(string[i] == ' ')
blank++;
else
others++;
i++;
}
printf("upper count: %d\n", upper);
printf("lower count: %d\n", lower);
printf("digit count: %d\n", digit);
printf("blank count: %d\n", blank);
printf("others count: %d\n", others);

return 0;
}

//第4.1题源码
#include <stdio.h>

#define ROW 5
#define COL 9

int main (void)
{
char paral[ROW][COL];
int i,j;
for(i=0;i<ROW;i++)
for(j=0;j<COL;j++){
if(j<ROW-i-1)
paral[i][j]=' ';
else if(j<ROW-i+4)
paral[i][j]='*';
else
paral[i][j]=' ';
}
for(i=0;i<ROW;i++){
for(j=0;j<COL;j++)
printf("%c", paral[i][j]);
printf("\n");
}

return 0;
}

//第4.2题源码
#include <stdio.h>

#define N 5
int main()
{
int i,j;
for(i = 0; i < N; i ++)
{
for(j = 0; j < N-i-1; j++)
putchar(' ');
for(j=0;j<=i;j++)
putchar('*');
for(j=i-1;j>=0;j--)
putchar('*');
putchar('\n');
}
return 0;
}
所有程序都测试通过了的,如果觉得满足你的要求,希望采纳一下答案呀!

热心网友

//全部习题的源码如下
//第1题源码
#include <stdio.h>

#define N 30

int main (void)
{
int mol[N],den[N]; //定义分子分母数组
double sum=0;
int i;

mol[0]=1,den[0]=2;
for(i=0; i<N; i++){
sum += (1.0*mol[i])/den[i];
mol[i+1]=den[i];
den[i+1]=mol[i]+den[i];
}
printf("sum = %.6lf\n", sum); //sum = 18.458635
return 0;
}

//第2题源码
#include <stdio.h>

#define N

void insert(int *a, int len, int s)
{
int i,pos;
if(s >= a[len-1]){
a[len] = s;
return;
}
for(pos=i=0;i<len;i++)
if(s > a[i] && s <= a[i+1]){
pos = i+1;
break;
}
for(i=len; i>=pos; i--)
a[i] = a[i-1];
a[pos] = s;
}

int main (void)
{
int arr[N] = {3,6,9,12,17,21,31,34,40,55};
int len = 10;
int i,n;

printf("Input n: ");
scanf("%d", &n);
insert(arr, len, n);
for(i=0;i<len+1;i++)
printf("%d ", arr[i]);
printf("\n");

return 0;
}

//第3题源码
#include <stdio.h>

#define MAX 51

int main (void)
{
char string[MAX]={0},ch;
int i=0;
int upper,lower,digit,blank,others;

upper=lower=digit=blank=others=0;
printf("Input a string:\n");
while((ch=getchar()) != '\n'){
string[i] = ch;
if(string[i]>='A' && string[i]<='Z')
upper++;
else if(string[i]>='a' && string[i]<='z')
lower++;
else if(string[i]>='0' && string[i]<='9')
digit++;
else if(string[i] == ' ')
blank++;
else
others++;
i++;
}
printf("upper count: %d\n", upper);
printf("lower count: %d\n", lower);
printf("digit count: %d\n", digit);
printf("blank count: %d\n", blank);
printf("others count: %d\n", others);

return 0;
}

//第4.1题源码
#include <stdio.h>

#define ROW 5
#define COL 9

int main (void)
{
char paral[ROW][COL];
int i,j;
for(i=0;i<ROW;i++)
for(j=0;j<COL;j++){
if(j<ROW-i-1)
paral[i][j]=' ';
else if(j<ROW-i+4)
paral[i][j]='*';
else
paral[i][j]=' ';
}
for(i=0;i<ROW;i++){
for(j=0;j<COL;j++)
printf("%c", paral[i][j]);
printf("\n");
}

return 0;
}

//第4.2题源码
#include <stdio.h>

#define N 5
int main()
{
int i,j;
for(i = 0; i < N; i ++)
{
for(j = 0; j < N-i-1; j++)
putchar(' ');
for(j=0;j<=i;j++)
putchar('*');
for(j=i-1;j>=0;j--)
putchar('*');
putchar('\n');
}
return 0;
}
所有程序都测试通过了的,如果觉得满足你的要求,希望采纳一下答案呀!

声明声明:本网页内容为用户发布,旨在传播知识,不代表本网认同其观点,若有侵权等问题请及时与本网联系,我们将在第一时间删除处理。E-MAIL:11247931@qq.com