用C用printf打印*在各自数 [英] printing * in respective number using printf in C
本文介绍了用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 = NUMS [I]
}
如果(NUMS [1] - ;分钟)
{
分= NUMS [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 [Ⅰ]≥*最大)
*最大= NUMS [I]
如果(NUMS [1] - *分钟)
*分= NUMS [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屋!
查看全文