菜鸟问关于C++分数输入输出问题

作者&投稿:游甄 (若有异议请与网页底部的电邮联系)
菜鸟问C++控制台程序如何输入分数1/3~

我觉得
不对.
C++没有读取分数的功能.
一般来讲
读入的都是字符串,
但是它可以很智能的根据你的接收类型
给你转换.
std::string s;
std::cin >> s; // 如果你输入 12, 就是字符串 12
int i;
std::cin >> i; // 如果你输入12, 就是数字 12但是C++没有分数类型.
所以唯一的办法是
你当成
字符串输入,
然后自己解析
或者
每次让用户分别
输入
分子

分母(中间用空格隔开)

你用到#include 就要稍微详细讲了.字符数组有胖瘦之分.瘦的是char 胖的是wchar_t.而TCHAR呢? 通用的.如果工程设置为多字节字符集就帮你转瘦的,UNICODE就转胖的 .
因此你应该统一使用一个阵营的函数
通用阵营 胖阵营 瘦阵营
_tcscat wcscat strcat
_tcschr wcschr strchr
_tcscpy wcscpy strcpy
_tcscspn wcscspn
_tcslen wcslen strlen
_tcsncat wcsncat strncat
_tcsncpy wcsncpy strncpy
_tcspbrk wcspbrk
_tcsrchr wcsrchr
_tcsspn wcsspn
_tcsstr wcsstr strstr
_tcstok wcstok
所以你的问题是混用了
char => strlen wchar_t => wcslen TCHAR -> _tcslen

#include <iostream.h>
#include <stdlib.h>
#include <string.h>
void main()
{
int m,n,nu1,nu2,mz,nuz1,nz,nuz2;
char str1[8],str2[8],num1[4],num2[4],numz1[4],numz2[4];
cout<<"Enter the user fraction:";
cin>>str1;
cout<<"Enter the second fraction:";
cin>>str2;
for(int i=0;i<8;i++)
{
if(str1[i]=='/')
nu1=i;
if(str1[i]=='\0')
nuz1=i;
}
for(i=0;i<nu1;i++)
num1[i]=str1[i];
for(i=nu1+1;i<nuz1;i++)
numz1[i-nu1-1]=str1[i];
m=atoi(num1);
mz=atoi(numz1);

for(i=0;i<8;i++)
{
if(str2[i]=='/')
nu2=i;
if(str2[i]=='\0')
nuz2=i;
}
for(i=0;i<nu2;i++)
num2[i]=str2[i];
for(i=nu2+1;i<nuz2;i++)
numz2[i-nu2-1]=str2[i];
n=atoi(num2);
nz=atoi(numz2);

int fz,fm;
char s1[5],s2[5];
fz=m*nz+mz*n;
fm=nz*mz;
itoa(fz,s1,10);
itoa(fm,s2,10);
strcat(s1,"/");
strcat(s1,s2);
if(fz==fm)
{
cout<<"sum=1"<<endl;
}
else
{
cout<<"sum="<<s1<<endl;
}

}

#include "stdio.h"
int denominator(int m, int n)
{
int num=1;
while(num>0)
{
num=m%n;
m=n;
n=num;
}
return m;
}

void main()
{
int son1,mor1,son2,mor2,mor,son;
double plot;
printf("Enter the user fraction:");
scanf("%d/%d",&son1,&mor1);
printf("Enter second fraction:");
scanf("%d/%d",&son2,&mor2);
mor=mor1*mor2/denominator(mor1,mor2);
son=mor/mor2*son2+mor/mor1*son1;
printf("Sum=%d/%d",son,mor);
}


c语言编程(小鸟)问题 100分求解答在线等
这个是鸟的输出。主要是每一行的输出,还要输出 for (n=0;n<5*h;n++) printf(" ");下一行前面的空格,就是和前面的 从左到右的控制 for (n=0;n<5*h;n++) printf(" ");其实主要是理解输出的思想。有问题可以hi我。

菜鸟的c语言问题
当a=17时,a%3=2,%是用来求余数的,17除以3的余数是2,所以a%3==2是真命题,从逻辑上讲,整个a%3==2的值为1,然后a-17为0;||是“或”的意思,“1”和“0”的或为1。

c语言菜鸟不懂就问!!!
6. k=ac ? c:k; 是值表达式ac如果为真,就将c的值赋给k,否则就把k的值赋给k,我想这句话应该印错了,应该是k=a?b:c,最后结果才是k=2,7.这里的x,y都定义的是整型变量,所以在赋值过程中他们只能被赋值成整数,y=(x+3.8)\/5.0;结果应该是y=0.98,但是编译系统会做一个强制...

菜鸟提问,关于C的数据类型
C的数据类型总分为4种:整型、浮点、指针和结构体 1、int是C的基本整型,其他的:short,long,signed,char都是int的变种;(各种不同类型的整型它们之间的区别在于各自的取值范围不同,以及是否可以取负数)。整型的表现形式又有10进制,8进制、16进制和2进制,但是在计算机内部都以二进制存储。2、浮点型...

菜鸟的c语言问题
a%3表示a除以3得到的余数 17除以3等于5余2,a%3==2为1,所以a%3==2‖a-17为1,结果也就为1。

C语言菜鸟问题
...1. &是取地址的意思 取变量在内存中的地址 找到它 然后把值赋给它 2. i=%d j=%d 2个 %d 和后面的变量对应 是整型 i= 和 j= 是显示出来给你看的 好让你知道 把值赋给谁了 scanf("i=%d,j=%d",&i,&j);键盘上输入:i=10,j=20 3. 你自己看错了 ...

菜鸟的问题,关于C语言中文件的读写操作,读出data.txt,并显示在屏幕上...
你这个是大整数加减法运算嘛,C++有没有学过,我这有一份现成的代码,是有STL做的。include<list> include<string> include<iomanip> using namespace std;class BigIntAdd { public:friend istream & operator>>(istream & in,BigIntAdd & number);friend ostream & operator<<(ostream & out,...

C语言菜鸟问题
%d, 输出的结果是不会变的,变的只是多了个“a+u=”的算式。其实第2个题中输出的形式主要想与程序中的c=a+u;d=b+u;算术表达式对应。语言中对于输入输出函数表达讲究:一般要求格式符号的个数与变量个数一样。特别是scanf语句的时候,要求取地址符号。我们上学期才学习完,一起努力哈 ...

一个关于C语言的问题 求老鸟解答 满意了给高分
执行if(m++>5)时,是先判断后++ 所以此时m=5,所以if为假 跳到else语句,此时m才执行++语句,则m=6 printf语句中先输出m=6的值,才执行m-- 所以以后用的值为5,但是printf语句输出为6

C语言中的分数四则运算
main(){ int a,b,c,d,i,x,y;char op;scanf("%d\/%d%c%d\/%d",&b,&a,&op,&d,&c);if(a==0||c==0) exit(0);if(op=='+'){y=b*c+d*a;x=a*c;} if(op=='-'){y=b*c-d*a,x=a*c;} if(op=='*'){y=b*d;x=a*c;} if(op=='\/'){y=b*c;x=a*d;...

平潭县18752046739: C++ 要求输入一个分数,之后划分等级,比如输入99就是A,最后怎样输出? -
廖朋心脉: cin>>n; switch( n/10) { case 10:case 9:printf("A");break; case 8:printf("B");break; case 7:printf("C");break; case 6:printf("D");break; case 5:case 4:case 3:case 2:case 1:case 0:printf("E");break; }

平潭县18752046739: c++中可不可以输出分数 -
廖朋心脉: 不可以直接输出分数,“/”代表整除,把整形转换成浮点型就可以得到小数

平潭县18752046739: c++中要输出分数值应该用什么数据类型 5/3+8/5 比如我要求 -
廖朋心脉: 用float型如scanf("%6.2f%6.2f%6.2f",&a,&b,&c);意思是输入一个数 整数占3位 小数保留两位 小数点占一位 对于5/3的求值 系统会自动保留两位小数 整数为不够三位的前面用空格填充 即右对齐方式

平潭县18752046739: C++输入成绩,输出成绩小问题求助 -
廖朋心脉: 你好 c++实现如下: #include using namespace std; struct Student{ int number; char name[10]; int grade; }; void main(){ struct Student student[10]; int sum=0; int a[10];//存入每个学生的数学成绩 用于排序 for(int i=0;i

平潭县18752046739: C++输入某学生3个学科成绩 输出成绩 总分和平均分 -
廖朋心脉: #include using namespace std; int main() { cout<<"请分别输入三个学生的成绩:"< >p[0]>>p[1]>>p[2]; cout<<"他们的总分是:"< 评论 0 0 加载更多

平潭县18752046739: C++编程题 一道关于输入输出学生三门成绩的程序 -
廖朋心脉: s.score;s) endl.score.course;(int { &nbsp,而该循环中有两次输出;(istream&请输入第"> input&gt,由于j循环三次;>个学生的三门成绩&quot input;s.a[i][j]=s; cout } //cout for&nbsp.a[i][j]; } return //重载输入>j s;;j++) {cin>>input;"i for s;}注意上面这段代码; istream&amp,分别为cin和input;s;i++) { cout

平潭县18752046739: c++根据成绩A B C D,输出对应的百分制分数段,A对应85到100,B对应70到84,C对应60到69,C对应0到60. -
廖朋心脉: #include <iostream> using namespace std; int main() {int score; int go=1; cout<<"先输入分数,然后会得到相应的ABCD等级."; while (go==1) { cin>>score; if (score<60 && score>0) cout<<"D\n"; if (score>=60 && score<=69) cout<<"C\n...

平潭县18752046739: C++ 编程,如何输入班级然后输出学生的成绩单? -
廖朋心脉: 虽然分确实太少,说下思路:先封装一个读文件的函数 void OpenFile( int Grade..... );//具体自己实现 这个需要你在给各个成绩单文件命名时与班级关联起来,比如就用班级号命名; 将班级ID 与成绩单ID 映射起来,比如:int Grade;//班级ID 那么当你输入班级后,直接调用OpenFile( Grade..... );

平潭县18752046739: 用c++编给出一个百分制的成绩,要求输出成绩为A,B,C,D.其中,85分以上为A,75~84分为B,65~74为c -
廖朋心脉: 不知道c++跟c#相同不.大概吧.我用c#wpf后台程序写个给你吧 console.WriteLine("请输入分数:"); int grade=int.parse(console.Read()); if(grade<65) { console.write(""); } else if(grade>=65&&grade<=74) { console.write("c"); } else if(...

平潭县18752046739: C++ 输入学生各科成绩输出降序的平均值 -
廖朋心脉: 手写了份 #include <cstdio> #include <iostream> #include <algorithm> using namespace std;const int SIZE = 110; struct student{string name;double LA, CT, C;double averge; }stu[SIZE];bool cmp(student a, student b){if(a.averge == b.averge) ...

本站内容来自于网友发表,不代表本站立场,仅表示其个人看法,不对其真实性、正确性、有效性作任何的担保
相关事宜请发邮件给我们
© 星空见康网