题目是用c输出以下信息:Very good

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了题目是用c输出以下信息:Very good相关的知识,希望对你有一定的参考价值。

我这样写对不对

#include<stfio.h>
void main()

printf("Very goof.\n");

求大侠们帮下忙,看对不对,有错的地方麻烦大侠们帮我讲解出来好吧。小弟新手,没什么分。初学者

#include<stdio.h>
int main()

printf("Very good!\n");
return 0;

已测试通过。另祝C语言学习愉快,顺利!
参考技术A 基本上没有什么问题
include后面应该是<stdio.h>,估计你笔误了吧

然后main函数最好用 int main()追问

为什么了

追答

这是C语言标准中建议的,程序结束时需要返回一个整数值表示其运行状态,一般默认返回0表示程序正常运行退出

追问

但是谭浩强的第三版的书,都是那个开头的诶

追答

书比较老了吧,以前的C标准是允许void main的

笔试强训之每日一题

笔试强训每日一题(四)

文章目录

计算糖果

题目链接

题目描述

A,B,C三个人是好朋友,每个人手里都有一些糖果,我们不知道他们每个人手上具体有多少个糖果,但是我们知道以下的信息:
A - B, B - C, A + B, B + C. 这四个数值.每个字母代表每个人所拥有的糖果数.
现在需要通过这四个数值计算出每个人手里有多少个糖果,即A,B,C。这里保证最多只有一组整数A,B,C满足所有题设条件。

输入描述

输入为一行,一共4个整数,分别为A - B,B - C,A + B,B + C,用空格隔开。 范围均在-30到30之间(闭区间)。

输出描述

输出为一行,如果存在满足的整数A,B,C则按顺序输出A,B,C,用空格隔开,行末无空格。 如果不存在这样的整数A,B,C,则输出No

题目解析

这道题其实是一个数学题

A - B = aSubb 1式

B - C = bSubc 2式

A + B = aSumb 3式

B + C = bSumc 4式

1式联立3式可得 A = (aSubb+aSumb)/2,B1 = A-aSubb

2式联立4式可得B2 = (bSubc+bSumc)/2,C = B2-bSubc

如果B1==B2说明有解,B1!=B2说明无解。

题目代码

#include<iostream>
using namespace std;
int main()

    int aSubb = 0;
    int bSubc = 0;
    int aSumb = 0;
    int bSumc = 0;
    cin>>aSubb>>bSubc>>aSumb>>bSumc;
    int A = (aSubb+aSumb)/2;
    int B1 = A-aSubb;
    int B2 = (bSubc+bSumc)/2;
    int C = B2-bSubc;
    if(B1!=B2)
    
        cout<<"No"<<endl;
    
    else
    
        cout<<A <<" "<<B1<<" "<<C<<endl;
    
    return 0;

进制转换

题目链接

题目描述

给定一个十进制数M,以及需要转换的进制数N。将十进制数M转化为N进制数

输入描述

输入为一行,M(32位整数)、N(2 ≤ N ≤ 16),以空格隔开。

输出描述

为每个测试实例输出转换后的数,每个输出占一行。如果N大于9,则对应的数字规则参考16进制(比如,10用A表示,等等)

解题思路一

首先进制转换的核心点是,需要知道一个十进制怎么转任意进制,就是用这个十进制去除进制,余数保存起来,所得商再继续进行取余,直到商为0为止,此时将余数倒着写就是转换过来的进制数:temp = num%n;num /= n;

因为栈具有先进后出的特性,我们可以用栈来保存余数,最后将栈元素出栈即可,需要注意的是判断当top大于等于10时,需要转化成字符打印,转换方法就是’A’-10+top,这里还需要注意的是需要判断如果输入的是0,我们直接输出0,如果是一个负数,我们需要将他转换成正数再进行转换,转换成正数的同时需要打印符号’-’。

解题代码一

#include<iostream>
#include<stack>
using namespace std;
int main()

    int num,n;
    cin>>num>>n;
    int temp = 0;
    if(num == 0)
    
        cout<<"0"<<endl;
    
    //栈保存?十进制以上的如何处理?
    stack<int> st;
    if(num < 0)
    
        num = -num;
        cout << '-';
    
    while(num)
    
        temp = num%n;
        num /= n;
        st.push(temp);
    
    while(!st.empty())
    
        int top = st.top();
        //判断当top大于等于10时,需要转化成字符打印 10-A 11-B
        if(top >= 10)
        
            char ch = 'A'-10+top;
            cout << ch;
        
        else
        
            cout << top;
        
        st.pop();
    
    return 0;

解题思路二

我们可以将0123456789ABCDEF保存在一个table当中,再创建一个string对象ret来保存余数,这里需要注意保存时余数映射到table的下标位置就是对应的字符:ret += table[m%n],完成后将ret进行逆置即可,这里还多了一个标志位进行正负的判断,余数保存完后,判断正负,如果为负将’-'加上去,其他细节和方法一类似

解题代码二

#include<iostream>
#include<string>
#include<algorithm>
using namespace std;
int main()

    int m,n;
    cin>>m>>n;
    string ret,table = "0123456789ABCDEF";
    int flag = 1;
    if(m == 0)
    
        cout<<'0'<<endl;
    
    if(m < 0)
    
        flag = -1;
        m = -m;
    
    while(m)
    
        ret += table[m%n];
        m /= n;
    
    if(flag == -1)
    
        ret += '-';
    
    reverse(ret.begin(),ret.end());
    cout<< ret <<endl;

以上是关于题目是用c输出以下信息:Very good的主要内容,如果未能解决你的问题,请参考以下文章

习题 1.5 请参照本章例题,编写一个C程序,输出以下信息:*****Very good!*****

用C语言输出Very good!

c语言 very good

* * * * * * * * * * * very good * * * * * * * * * * * 这个东西用c语言得输入啥才能让它输出?

用c语言程序实现在屏幕上输出:very good!并且外面一圈*共24个

编写一个c程序,输入“very good”