数组倒转变式的目前状态啊

img


一般的题都会在输入的时候把数组个数同时输入,这个直接写数组元素了,咋做啊(希望给出一个完整代码)
以下是我写的代码喵呜


#include<stdio.h>
void reverse(int arr [],int sum){
    for(int  i = 0; i < sum / 2; i++){
        int temp = arr[i];
        arr[i] = arr[sum - i - 1];
        arr[sum - i -1] = temp;
    }
    for(int j = 0 ;j < sum ;j++){
        printf("%d",arr[j]);
    }
}
int main(){
    int arr [100] = {0};
    int sum = 0;
    for(int i = 0;i < 100;i++){
        scanf("%d",&arr[i]);
        if(arr[i] = '\n'){
            break;
        }
        sum++;
    }
    reverse(arr,sum);
    return 0;
}

这么改,供参考:

#include<stdio.h>
void reverse(int arr [],int sum){
    for(int  i = 0; i < sum / 2; i++){
        int temp = arr[i];
        arr[i] = arr[sum - i - 1];
        arr[sum - i -1] = temp;
    }
    for(int j = 0 ;j < sum ;j++){
        printf("%d ",arr[j]);
    }
}
int main(){
    int  arr [100] = {0}, i = 0;
    do {
        scanf("%d", &arr[i++]);
    }while ((getchar()) != '\n');

    //for(int i = 0;i < 100;i++){
    //    scanf("%d",&arr[i]);
    //    if(arr[i] = '\n'){
    //        break;
    //    }
    //    sum++;
    //}
    reverse(arr,i);
    return 0;
}

  • 你可以参考下这个问题的回答, 看看是否对你有帮助, 链接: https://ask.csdn.net/questions/7531420
  • 我还给你找了一篇非常好的博客,你可以看看是否有帮助,链接:有如图所示的七巧板,试设计算法,使用至多4种不同颜色对七巧板进行涂色(每块七巧板一种颜色),要求相邻区域的颜色互补相同,打印输出所有可能的涂色方案。
  • 除此之外, 这篇博客: 运算符重载例子分数加减乘除,赋值,输入输出比较大小中的 把老师代码上传一下,方便用移动设备时刻查看 部分也许能够解决你的问题, 你可以仔细阅读以下内容或跳转源博客中阅读:
  • //有理数类的运算符重载 
     
    #include <iostream>
    using namespace std;
    class Rational{
    	private:
    		int fz;
    		int fm;
    	public:
    		static int count; //静态成员,实现对象计数 
    		Rational();
    		Rational(const Rational& ); //拷贝构造函数,以该类对象的常引用作为形参 
    		~Rational(); //析构函数 
    		friend Rational operator+(Rational,Rational);  //友元函数重载形式 
    		Rational operator*(Rational);                  //成员函数重载形式,隐含的this指针作为第一个形参 
    		Rational& operator=(Rational);                 //赋值运算符只能重载为成员函数 
    		Rational& operator++();
    		Rational operator++(int);                      //后置++,添加int为参数 
    		friend bool operator<(Rational,Rational);                 
    		friend ostream& operator<<(ostream&,const Rational&); //输出运算符只能重载为友元函数 
    		friend istream& operator>>(istream&,Rational&);//输入运算符只能重载为友元函数 
    }; 
    int Rational::count = 0;  //静态成员在类外进行初始化
    
    Rational::Rational()
    {
    	fz =0 ;
    	fm =1 ;
    	count++;   //对象被创建时,计数自动+1 
    }
    Rational::Rational(const Rational& r)
    {
    	fz = r.fz;
    	fm = r.fm;
    	count++; //用已有对象初始化新对象,计数自动+1 
    }
    Rational::~Rational()
    {
    	count--; //对象销毁,计数自动-1 
    }
    
    ostream& operator<<(ostream& output,const Rational& x) //返回值、第一个形参都可以看做是输出流对象cout 
    {
    	output << x.fz << "/" << x.fm;
    	return output;                              //必须返回output,支持下一次的输出 
    }
    istream& operator>>(istream& input,Rational& x) //第二个参数必须为引用形参,才能改变实参 
    {
    	input >> x.fz >> x.fm;
    	return input;                               //必须返回input,支持下一次的输入
    }
    Rational Rational::operator*(Rational y)  //成员函数名前加类名和域作用符(::) 
    {
    	Rational result;
    	result.fz = this->fz * y.fz;    //this指针指代乘法运算的左对象 
    	result.fm = this->fm * y.fm;
    	return result;
    }
    Rational operator+(Rational x,Rational y) //友元函数,所有操作对象都被声明为形参 
    {
    	Rational result;
    	result.fz = x.fz * y.fm + x.fm * y.fz;
    	result.fm = x.fm * y.fm;
    	return result;
    } 
    Rational& Rational::operator=(Rational y)
    {
    	this->fm = y.fm;
    	this->fz = y.fz;
    	return *this;        //返回当前对象,返回值类型为引用 
    }
    Rational& Rational::operator++() //前置自增,操作对象和返回对象都是*this 
    {
    	this->fz += this->fm;
    	return *this;            
    }
    Rational Rational::operator++(int) //后置自增,以int为形参,返回原对象的值 
    {
    	Rational temp(*this);   //保存原对象的值 
    	this->fz += this->fm;     
    	return temp;             //返回原对象的值 
    }
    bool operator<(Rational x,Rational y)
    {
    	if((x.fz*y.fm - x.fm*y.fz) < 0 )
    		return true;
    	else
    		return false;     //有返回值要求时,if-else要完整匹配 
    } 
    
    
    int main()
    {
    	Rational r,b,c;  //调用无参构造函数 
        cout << "请输入四个整数,表示两个分数的分子和分母:" ;
    	cin >> b >> c;   //调用输入运算符重载函数 
        cout << "b=" << b << ", c=" << c << '\n'; //调用输出运算符重载函数
        
    	r = b + c;      //调用+和=运算符重载函数 
    	cout << "r = b + c = " << r << '\n';
    
    	r = b * c;     //调用*和=运算符重载函数
    	cout << "r = b * c = " << r << '\n';
    	
    	cout << "r++ = " << (r++) << ", r = " << r << '\n';  //调用后置++运算符重载函数
    	cout << "++r = " << (++r) << ", r = " << r << '\n';  //调用前置++运算符重载函数
    	
    	Rational num1 = r++;
    	Rational num2 = r;
    	Rational num3 = ++r; 
    	if(num1 < num2)                      //调用<运算符重载函数
    		cout << "后置自增返回原对象的值\n";
    	else
    		cout << "后置自增返回自增后的对象值\n";
    	if(num2 < num3)
    		cout << "前置自增返回自增后的对象值\n";
    	else
    		cout << "前置自增返回原对象的值\n";
    	
    	return 0;
    }
    
  • 您还可以看一下 黄菊华老师的基于网页的个人音乐播放器系统 毕业设计毕设源码(含后台和源代码)课程中的 网页音乐播放器系统-源代码分析小节, 巩固相关知识点