首先从键盘输入一个正整数n(n<100,代表数组元素个数)

接着输入n个整数(代表数组元素)。然后再输入一个数x,要求将数组中所有不大于x的元素扩大1倍,并把处理后的数组元素输出,用空格分隔。

#include <stdio.h>
#include <stdlib.h>

int main(int argc, const char * argv[])
{
    //声明使用的变量
    char c[32];
    int num = 0;
    int max = 0;
    int *array;
    //输入数组长度
    while (1) {
        printf("输入数组长度(小于100):\n");
        gets(c);
        num = atoi(c);
        if (num>=100) {
            printf("数组长度必须小于100!\n");
            continue;
        }
        break;
    }
    //为数组分配内存
    array = (int*)malloc(sizeof(int)*num);
    //输入数组
    printf("样例输入:\n");
    int a;
    for (a=0; a<num; a++) {
        gets(c);
        array[a] = atoi(c);
    }
    //输入界限
    printf("输入一个数,刚才输入的数组中所有不大于这个数的元素会扩大1倍\n");
    gets(c);
    max = atoi(c);
    //打印结果
    printf("样例输出:\n");
    for (a=0; a<num; a++) {
        //扩大元素
        if (array[a]<=max) {
            array[a]*=2;
        }
        printf("%d ",array[a]);
    }
    printf("\n");
    //退出程序
    free(array);
    return 0;
}

运行:

输入数组长度(小于100):

104

数组长度必须小于100!

输入数组长度(小于100):

6

样例输入:

45

60

135

21

38

2

输入一个数,刚才输入的数组中所有不大于这个数的元素会扩大1倍

38

样例输出:

45 60 135 42 76 4 

温馨提示:答案为网友推荐,仅供参考
第1个回答  2014-06-09
#include<stdio.h>
int main()
{
int i,n,x,a[110];
scanf("%d",&n);
for(i=0;i<n;i++)
{
scanf("%d",&a[i]);
}
scanf("%d",&x);
for(i=0;i<n;i++)
{
if(a[i]<=x)a[i]*=2;
}
for(i=0;i<n;i++)
{
printf("%d",a[i]);
if(i<n-1)printf(" ");
}
printf("\n");
return 0;
}本回答被网友采纳
第2个回答  2014-06-09
scanf("%d", &n);
for(int i=0; i <n; i ++)
scanf("%d", num[i]);
scanf("%d", x);
for(i=0; i < n ; i ++)
{
if(num[i] <= n);
num[i]<<1;
}

for(i=0; i < n; i ++)
printf("%d ", num[i]);
相似回答