注册 登录
编程论坛 VC++/MFC

求教 如何学好C语言 并教教我解决几个基础问题

a343637412 发布于 2010-09-26 12:58, 1442 次点击
Problem Description
求实数的绝对值。
Input
输入数据有多组,每组占一行,每行包含一个实数。
Output
对于每组输入数据,输出它的绝对值,要求每组数据输出一行,结果保留两位小数。
Sample Input
123
-234.00

Sample Output
123.00
234.00




计算两点间的距离
输入两点坐标(X1,Y1),(X2,Y2),计算并输出两点间的距离。
Input
输入数据有多组,每组占一行,由4个实数组成,分别表示x1,y1,x2,y2,数据之间用空格隔开。
Output
对于每组输入数据,输出一行,结果保留两位小数。
Sample Input
0 0 0 1
0 1 1 0
Sample Output
1.00
1.41

成绩转换
Time Limit : 2000/1000ms (Java/Other)   Memory Limit : 65536/32768K (Java/Other)
Total Submission(s) : 2   Accepted Submission(s) : 0
Font: Times New Roman | Verdana | Georgia
Font Size: ← →
Problem Description
输入一个百分制的成绩t,将其转换成对应的等级,具体转换规则如下:
90~100为A;
80~89为B;
70~79为C;
60~69为D;
0~59为E;

Input
输入数据有多组,每组占一行,由一个整数组成。
Output
对于每组输入数据,输出一行。如果输入数据不在0~100范围内,请输出一行:“Score is error!”。
Sample Input
56
67
100
123
Sample Output
E
D
A
Score is error!

Author


求奇数的乘积
Time Limit : 2000/1000ms (Java/Other)   Memory Limit : 65536/32768K (Java/Other)
Total Submission(s) : 2   Accepted Submission(s) : 2
Font: Times New Roman | Verdana | Georgia
Font Size: ← →
Problem Description
给你n个整数,求他们中所有奇数的乘积。
Input
输入数据包含多个测试实例,每个测试实例占一行,每行的第一个数为n,表示本组数据一共有n个,接着是n个整数,你可以假设每组数据必定至少存在一个奇数。
Output
输出每组数中的所有奇数的乘积,对于测试实例,输出一行。
Sample Input
3 1 2 3
4 2 3 4 5

Sample Output
3
15

Author

9 回复
#2
a3436374122010-09-26 12:59
我会在明天夜里9~10点上线求问谢谢各位帮忙的大虾
#3
m21wo2010-09-26 19:00
程序代码:
#include <iostream>
#include <cmath>
using namespace std;
int main()
{
    double* a;
    int n;
    cout<<"请输入您要输的数个数:";
    cin>>n;
    a=new double[n];
    for(int i=0;i<n;i++)
        cin>>a[i];
    for(int i=0;i<n;i++)
    {
        cout.setf(ios::showpoint);
        cout<<fabs(a[i])<<endl;
    }
}



#include <iostream>
#include <cmath>
const int N=10;
using namespace std;
double dis(double x1,double y1,double x2, double y2)
{
    double m=(x1-x2)*(x1-x2)+(y1-y2)*(y1-y2);
    return sqrt(m);
}
int main()
{
    double a[N][4];
    int n;
    cout<<"请输入数据的组数:";
    cin>>n;
    cout<<"请输入数据:"<<endl;
    for(int i=0;i<n;i++)
        for(int j=0;j<4;j++)
            cin>>a[i][j];
    double* m;
    m=new double[n];
    for(int i=0;i<n;i++)
        m[i]=dis(a[i][0],a[i][1],a[i][2],a[i][3]);
    cout<<"对应的距离:"<<endl;
    cout.precision(3);
    cout.setf(ios::showpoint);
    for(int i=0;i<n;i++)
        cout<<m[i]<<endl;
}





#include <iostream>
using namespace std;
char transform(double m)
{
    switch(int(m/10))
    {
        case 10 :case 9:
            return 'A';
        case 8 :
            return 'B';
        case 7 :
            return 'C';
        case 6 :
            return 'D';
        case 5 :case 4:case 3:case 2:case 1:case 0:
            return 'E';
        default:
            return '0';
    }
}
int main()
{
    double* a;
    int n;
    cout<<"请输入您要输的数个数:";
    cin>>n;
    a=new double[n];
    cout<<"请输入数据:"<<endl;
    for(int i=0;i<n;i++)
        cin>>a[i];
    cout<<"转换后的为:"<<endl;
    for(int i=0;i<n;i++)
    {
      char m=transform(a[i]);
      if(m=='0')
      {
          cout<<"Score is error!"<<endl;
          continue;
      }
      cout<<m<<endl;
    }
}
前三个代码!如有不足之处,请指正!!!呵呵!
#4
m21wo2010-09-26 19:25
第4个题!
程序代码:
#include <iostream>
using namespace std;
int main()
{
    int m;
    cout<<"请输入数据的组数:";
    cin>>m;
    int* s;
    s=new int[m];
    for(int i=0;i<m;i++)
        s[i]=1;
    int x;
    int** a;
    a=new int*[m];
    for(int i=0;i<m;i++)
    {
        cin>>x;
        a[i]=new int[x];
        for(int j=0;j<x;j++)
        {
            cin>>a[i][j];
            if(a[i][j]%2!=0)
                s[i]*=a[i][j];
        }
    }
    for(int i=0;i<m;i++)
        cout<<s[i]<<endl;
}

#5
m21wo2010-09-26 19:42
第一个题目没看清!
程序代码:
#include <iostream>
#include <cmath>
#include<iomanip>
using namespace std;
int main()
{
    double* a;
    int n;
    cout<<"请输入您要输的数个数:";
    cin>>n;
    a=new double[n];
    for(int i=0;i<n;i++)
        cin>>a[i];
    for(int i=0;i<n;i++)
    {
        cout.setf(ios::showpoint);
        cout.setf(ios::fixed);
        cout<<setprecision(2)<<fabs(a[i])<<endl;
    }
}

这个应该可行了!
#6
jaedong2010-09-26 21:08
楼上高手 C C++ 初学者路过! 我想搞嵌入式开发 如何上手?
#7
2010-09-26 23:52
回复 3楼 m21wo
第三个我运行了下
错误:transform 找不到标识符
怎么改?需要添加什么头文件吗?
#8
m21wo2010-09-27 13:37
是对的啊 !我也运行了啊!我后面调用了transform 函数怎么会找不到啊?
#9
吴伟迪2010-09-27 19:59
回复 8楼 m21wo
for(int i=0;i<m;i++)
这句话报错了啊
for 里定义I,哪来INT啊
#10
吴伟迪2010-09-27 20:05
回复 8楼 m21wo
switch里面的case语句后面不加break,不管你怎么输入都是执行最后那一个,不管怎么样输出都是E
1