请教高手根据已知流程图写一段C语言程序

请教高手根据已知流程图写一段C语言程序,第1张

main()

{

    int a[8],i=0;

    do

    {

        scanf("%d",a[i]);

        i++;

    }while(i<8)

    for(int j=0;j<8;j++)

    {

        if(a[j]>=100&&a[j]<=200)

        {

            printf("按照100-200C处理");

        }

        esle if(a[j]>200)

        {

            printf("按照200-300C处理");

        }esle

        {

            printf("按照0-100C处理");

        }

        

        

    }

}

就是穷举法:根据要求可知x,y,z必小于100,且y小于50,故可用三重循环搜索,外面记下最大值,遍历完后给出即可。

#include <stdioh>

int main() 

{

    int max=0;

    int x, y, z;

    int px, py, pz;

    for(x=1; x<=100; x++) {

        for(y=1; y<=50; y++) {

            for(z=1; z<100; z++) {

                if(x+2y+z==100) {

                    int res=2x+5y+z;

                    if(max<res) {

                        max = res;

                        px=x; py=y; pz=z;

                    }

                }

            }

        }

    }

    printf("2%2d+5%2d+%2d = %d\n", px, py, pz, max);

}

实际推算可知,由于y所占比重最大,因此,y应取接近前面约束中的最大值,即49,于是x=z=1,即最大值为:2+549+1=248。

这里答案不是5,应该是6。

你可以写个测试程序测试下。

这里考的是转义字符的用法。

C中转义字符有三种表示方法:

1 在\后面接一个特定的字母,如\n,\t等。表示对应的意义。

2 在\后面接x,然后接两位16进制数字,不区分大小写。如'\x12', '\xAb'等。表示对应两位16进制的ascii码值。

3 在\后面接三位8进制数值,如'\123', '\011'等。表示三位8进制数表示的ascii码值。

与'\018'最为接近的情况是第三种,不过第三种要求是8进制数,所以合法的字符只有0~7,8并不是合法的8进制字符。所以作为单个字符\018的写法是错误的。如果出现在字符串中,会被当做'\01'(ascii码值为1)和'8'两个字符来处理。

综上所述,首先strlen是计算字符串长度,不包含结束符。

再有这里\018是两个字符 \01 和 8,所以这里面的字符有‘a’、‘b’、'\n'、‘\01’、‘8’、‘\\’共6个,

可以参考我下面的测试程序一一输出。

#include<stdioh>

#include<stringh>

int main()

{

    char str[]="ab\n\018\\";

    int i = 0;

    printf("%d\n",strlen(str));

    for(; i < strlen(str); i ++) {

        printf("%c ", str[i]);

    }                                                                                                                                                                                      

    

    return 0;

}

输出结果如下:

!以下程序段用于求任意华氏温度所对应的摄氏温度

PROGRAM FTOC

REAL F,C

PRINT,'请输入华氏温度,并按回车结束'

READ, F

C=(F-32)5/9

PRINT,'对应的摄氏温度为:',C

END

以上就是关于请教高手根据已知流程图写一段C语言程序全部的内容,包括:请教高手根据已知流程图写一段C语言程序、c语言程序 已知x y z为正整数,且x+ 2y +z=100,求2x+ 5y +z的最大值、已知在c语言中等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/zz/9366657.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-04-27
下一篇 2023-04-27

发表评论

登录后才能评论

评论列表(0条)

保存