用C用printf打印*在各自数 [英] printing * in respective number using printf in C

查看:149
本文介绍了用C用printf打印*在各自数的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我想在这个任务上打印*在其各自的号码工作。另外,如果你看到的图片我需要显示的最小和最大数量,我该怎么办呢?我在想一个数组存储这些数字有这样做,但是当我创建数组,并试图通过他们我得到了一个错误。

下面的图片:

 的#include<&stdio.h中GT;
#包括LT&;&limits.h中GT;
#包括LT&;&math.h中GT;INT F(INT);诠释主要(无效){
    INT I,T,funval,TEMPL,tempH;
        int类型的;
    //确保改变低和高的测试程序时
    INT低= -3,高= 11;
    对于(t =低; T< =高;吨++){
        的printf(F(%2D)=%3D \\ n,T,F(T));        }    的printf(\\ n);
    的printf();
    对于(i = 1; I< = 31; I + = 5)
        的printf(%3D,我);
        的printf(\\ n);
        的printf();
    对于(i = 1; I< = 31; I + = 5)
        的printf(|);
        的printf(\\ n);
    对于(t =低; T< =高;吨++){
        的printf(T =%2D \\ n,T);    }
    的printf(\\ n);
   对于(i = 0; I< = sizeof的(NUMS)/的sizeof(int);在我++){
    如果(NUMS [Ⅰ]≥最大值)
        {
      MAX = NUM​​S [I]
        }
   如果(NUMS [1] - ;分钟)
        {
      分= NUM​​S [I]
        }
    }
    的printf(闽数:%d \\ n,分钟);
    的printf(最大数:%d \\ n,最大值);    的printf(\\ n);
    的printf();
    为(ⅰ=分钟; I&下; =最大值; I + = 5)
        的printf(%3D,我);
        的printf(\\ n);
        的printf();
    为(ⅰ=分钟; I&下; =最大值; I + = 5)
        的printf(|);
        的printf(\\ n);
    对于(t =低; T< =高;吨++){
    的printf(T =%2D \\ n,T);    }    //你的code这里...
    返回0;
}
INT F(INT T){
    //例1
    收益率(T * T-4 * T + 5);    //例子2
    //返回(-t * T + 4 * T-1);    //例子3
    //回报(SIN(T)* 10);    //例4
    //如果(T&0)
    //返回T * 2;
    //其他
    //返回T * 8;
}


解决方案

 的#include<&stdio.h中GT;
#包括LT&;&stdlib.h中GT;INT parabola1(INT);为int *计算(INT低,诠释高,INT(* F)(INT),INT *尺寸为int *分,为int *最大值){
/ *
#INPUT
低,高:范围{X |低< = X< =高}
F:功能
#output
*尺寸:数组大小
*分:F的最小值(X)
*最大:最大值
返回:指向INT NUM的第一个元素[*尺寸]
         NULL,如果这不能被保证。
* /
    INT I,X,* NUMS;
    *大小=高 - 低+ 1;
    *最大= *分= F(低);临时的值//
    如果(NULL ==(NUMS =的malloc(*尺寸*的sizeof(* NUMS)))){
        返回NULL; //最大和最小不可用
    }
    对于(i = 0,X =低; X< =高; + X,我++){
        NUMS [I] = F(X);
        如果(NUMS [Ⅰ]≥*最大)
            *最大= NUM​​S [I]
        如果(NUMS [1] - *分钟)
            *分= NUM​​S [I]
    }
    返回NUMS;
}诠释主要(无效){
    INT I,T;
    为int * NUMS,大小;
    INT低= -3,高= 9,最小值,最大值;    NUMS =计算(低,高,parabola1,&安培;大小,和放大器;分钟,和放大器;最大);
    对于(i = 0; I<大小;我++){
        的printf(F(%2D)=%3D \\ n,低+ I,NUMS [I]);
    }
    的printf( - \\ n);
    的printf(闽=%3D \\ n,分钟);
    的printf(最大=%3D \\ n,最大值);
    的printf( - \\ n);    T = -2;
    的printf(T =%2D%* S%C \\ n,T,NUMS [T-低] -min,,*);
    免费(NUMS);
    返回0;
}INT parabola1(INT T){
    返回T *(T-4)+5;
}

I'm trying to work on this assignment that prints "*" in their respective number. Also, if you see the picture I need to display the min and the max number, how can I do this? I was thinking about doing it with an array storing those numbers there but when I created the array and tried to pass them I got an error.

Here's the picture:

#include <stdio.h>
#include <limits.h>
#include <math.h>

int f(int);

int main(void){
    int i, t, funval,tempL,tempH;
        int a;


    // Make sure to change low and high when testing your program
    int low=-3, high=11;
    for (t=low; t<=high;t++){
        printf("f(%2d)=%3d\n",t,f(t));

        }

    printf("\n");
    printf("   ");
    for (i=1; i<=31; i+=5)
        printf("%3d   ", i);
        printf("\n");
        printf("   ");
    for (i=1; i<=31; i+=5)
        printf("  |   ");
        printf("\n");


    for (t=low; t<=high;t++){
        printf("t=%2d\n",t);

    }
    printf("\n");
   for(i=0;i<=sizeof(nums)/sizeof(int);i++){
    if (nums[i] > max)
        {
      max = nums[i];
        }
   if (nums[i] < min)
        {
      min = nums[i];
        }
    }
    printf("Min: %d\n", min);
    printf("Max: %d\n", max);

    printf("\n");
    printf("   ");
    for (i=min; i<=max; i+=5)
        printf("%3d   ", i);
        printf("\n");
        printf("   ");
    for (i=min; i<=max; i+=5)
        printf("  |   ");
        printf("\n");


    for (t=low; t<=high;t++){
    printf("t=%2d\n",t);

    }

    // Your code here...
    return 0;
}


int f(int t){
    // example 1
    return (t*t-4*t+5);

    // example 2
    // return (-t*t+4*t-1);

    // example 3
    // return (sin(t)*10);

    // example 4
    // if (t>0)
    //  return t*2;
    // else
    //  return t*8;
}

解决方案

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

int parabola1(int);

int *calc(int low, int high, int (*f)(int), int *size, int *min, int *max){
/*
#input
low, high : range {x| low <= x <= high}
f : function
#output
*size : Size of array
*min : Minimum value of f(x)
*max : Maximum value
return : pointer to first element of int num[*size]
         NULL if this can not be ensured.
*/
    int i, x, *nums;
    *size = high - low + 1;
    *max = *min = f(low);//value of the provisional
    if(NULL==(nums=malloc(*size*sizeof(*nums)))){
        return NULL;//max and min are unavailable
    }
    for(i = 0, x = low; x <= high; ++x, ++i){
        nums[i] = f(x);
        if(nums[i] > *max)
            *max = nums[i];
        if(nums[i] < *min)
            *min = nums[i];
    }
    return nums;
}

int main(void){
    int i, t;
    int *nums, size;
    int low=-3, high=9, min, max;

    nums = calc(low, high, parabola1, &size, &min, &max);
    for (i=0; i<size;i++){
        printf("f(%2d)=%3d\n", low+i, nums[i]);
    }
    printf("--\n");
    printf("min=%3d\n", min);
    printf("max=%3d\n", max);
    printf("--\n");

    t = -2;
    printf("t=%2d%*s%c\n", t, nums[t-low]-min, "", '*');
    free(nums);
    return 0;
}

int parabola1(int t){
    return t*(t-4)+5;
}

这篇关于用C用printf打印*在各自数的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆