问答文章1 问答文章501 问答文章1001 问答文章1501 问答文章2001 问答文章2501 问答文章3001 问答文章3501 问答文章4001 问答文章4501 问答文章5001 问答文章5501 问答文章6001 问答文章6501 问答文章7001 问答文章7501 问答文章8001 问答文章8501 问答文章9001 问答文章9501

谁能帮我解决这个C语言程序问题?

发布网友 发布时间:2023-11-01 13:53

我来回答

6个回答

热心网友 时间:2023-11-26 05:53

#include<stdio.h>
#include <Windows.h>
int main()
{
int n1,n2;
char tag;
printf("C语言四则运算器\n");
printf("请输入两个数字格式如1,2\n");
scanf("%d,%d",&n1,&n2);
printf("请输入运算符:\n");
getchar();//接受你输入数字后的回车,因为回车也是字符
scanf("%c",&tag);
if(tag=='+') printf("%d+%d=%d",n1,n2,n1+n2);
if(tag=='-') printf("%d-%d=%d",n1,n2,n1-n2);
if(tag=='*') printf("%d*%d=%d",n1,n2,n1*n2);
if(tag=='/')
if (n2!=0)//判断除数是否为零
{
printf("%d*%d=%d",n1,n2,n1/n2);
}
else
{
printf("error!\n");
}

system("pause");
return 0;
}

热心网友 时间:2023-11-26 05:54

#include<stdio.h>
main()
{
int n1,n2;
char tag;
printf("C语言四则运算器\n");
printf("请输入两个数字格式如1,2\n");
scanf("%d,%d",&n1,&n2);
printf("请输入运算符:\n");
scanf("%c",&tag);
if(tag=='+') printf("n1+n2=%d",n1+n2);
if(tag=='-') printf("n1-n2=%d",n1-n2);
if(tag=='*') printf("n1*n2=%d",n1*n2);
if(tag=='/') printf("n1/n2=%d",n1/n2);
}

热心网友 时间:2023-11-26 05:54

应该是无法输出结果:最后的四个printf();语句有问题:
应该是:
if(tag=='+') printf("n1+n2=%d",n1+n2);
if(tag=='-') printf("n1-n2=%d",n1-n2);
if(tag=='*') printf("n1*n2=%d",n1*n2);
if(tag=='/') printf("n1/n2=%lf",(double)n1/n2);
最后的那个除法注意,如果你用printf("n1/n2=%d",n1/n2);的话,这样得不到正确结果,因为一个int和一个int相除,会得到一个整型int,所以除要强制转换成double才行!

热心网友 时间:2023-11-26 05:55

原因是你在第一个scanf里输入数据后,会按下Enter,这个仍然保存的缓冲区中
下一个scan时,你觉得你输入了运算符,但是在运算符前,还有一个Enter(ASCII好像是0DH),所以,结果是没有输出!!!

你应该在第一个scanf里消去那个Enter,代码:scanf("%d,%d%*c",&n1, &n2);
%*c会消支这个Enter了!!!

热心网友 时间:2023-11-26 05:55

问题补充:还有个
8用指针方法编写程序,输入三个字符串,按由小到大的顺序输出。要求用函数实现,并用指向一维数组的指针作为函数的参数。
======================
这一个在最后,多加些分吧,累死我了:(

给,都已经编译运行确认了:

1.任意输入一个数,判断它是否为素数
#include "stdio.h"
#include "conio.h"
#include "math.h"
int ss(int inputshu)
{
int i,m,t;
m=inputshu;
for(i=2;i<=sqrt(m);i++)
if(m%i==0)
if(i>sqrt(m)+1) t=1;
return(t);
}
int main(void)
{
int j;
printf("请输入一个数: \n");
scanf("%d",&j);
if(ss(j)==0) printf("%d不是素数",j);
else printf("%d是素数",j);

getch();
return 1;
}

2.打印1~1000内所有完数
#include<stdio.h> /*头文件*/
#include<conio.h>
#define N 1000 /*搜索范围在1000以内*/

int wanshu(int x) /*判断x是否完数*/
{
int i,sum=0;

for(i=1;i<=x;i++) /*对所有x的因子求和*/
{
if(x%i==0) sum=sum+i;
continue;
}

if(sum==x*2) return(1); /*如果求和结果等于2x则x是完数*/
else return(0); /*否则不是完数*/
} /*完数判断函数结束*/

int print_factor(int x) /*打印结果*/
{
int i,j,res[1000]=; /*i,j为循环变量.res数组记录每个因子.*/

for(i=1;i<x;i++) /*将每个非零因子存在数组res[]中*/
{
if(x%i==0) res[i]=i;
continue;
}
printf("%d its factors are: ",x); /*打印提示*/

for(j=0;j<x;j++) /*打印每个因子,以逗号相隔.*/
{
if(res[j]!=0)
{
printf("%d",res[j]);
printf("\,");
}
}
printf("\n");
return(0);
} /*打印函数结束*/

int main(int argc, char *argv[]) /*主函数*/
{
int i; /*循环变量*/

for(i=1;i<=N;i++) /*循环找出小于N的所有完数并输出其因子.*/
{
if(wanshu(i)) print_factor(i);
continue;
}
getch();
return 0;
} /*主函数结束*/

3.打印100~999之间的水仙花数
#include "stdio.h"
#include "conio.h"

int main()
{
int i,j,k,n;
printf("水仙花数是:\n");
for(n=100;n<1000;n++)
{
i=n/100;
j=(n-i*100)/10;
k=n%10;
if(i*i*i+j*j*j+k*k*k==n)

printf("%d\n",n);
}

getch();
return 1;
}

4.输入若干字符(以输入!为结束条件)分别统计其中字母、空格、数字和其它字符个数
#include "stdio.h"
#include "conio.h"
int main(void)
{
int word=0,digit=0,space=0,other=0,i=0;
char *p,s[80];
printf("\nInput a string:");
while ((s[i]=getchar())!='\n') i++;
p=s;
while(*p!='!')
{
if(((*p>='A')&&(*p<='Z'))||((*p>='a')&&(*p<='z')))
word++;
else if(*p==' '||*p==9)
space++;
else if((*p>='0')&&(*p<='9'))
digit++;
else
other++;
p++;
}
printf("字母:%d个,空格:%d个,数字:%d个,其它字符:%d个",word,space,digit,other);

getch();
return 1;
}

5.编写九九乘法表
#include <stdio.h>
#include <conio.h>

int main(){
int t[10][10]=;
int i,j;

for(i=1;i<10;i++)
for(j=1;j<10;j++)
t[i][j]=i*j;
for(i=1;i<10;i++){
for(j=1;j<10;j++)
if(i>=j)
printf("%d*%d=%2d ",i,j,t[i][j]);
printf("\n");
}

getch();
return 0;
}

6.求极数e的x次方=1+x+2的阶乘分之x平方+3的阶乘分之x立方+......n的阶乘分之xn次方
#include <stdio.h>
#include <conio.h>

int x;
float sum;

long f1(int n)
{
if(n==0) return 1;
else return x*f1(n-1);
}

long f2(int n)
{
if(n==0) return 1;
else return n*f2(n-1);
}

int main()
{
int i,n;

printf("请输入x: ");
scanf("%d",&x);
printf("请输入n: ");
scanf("%d",&n);

for(i=0;i<=n;i++)
sum+=(float)f1(i)/(float)f2(i);
printf("e的%d次方为: %f",x,sum);

getch();
return 1;
}

7.输入4个学生三门课题成绩(二维整型数组)要求:每个学生的平均分、每门课平均分、输出每个学生三门课成绩
#include <stdio.h>
#include <conio.h>

int main()
{
int a[4][3]=;
int i,j;
int total=0;
float ave;
printf("请输入4个学生三门课题成绩: \n");
for(i=0;i<4;i++)
for(j=0;j<3;j++)
{
printf("第%d个学生第%d门课成绩: ",i+1,j+1);
fflush(stdin);
scanf("%d",&a[i][j]);
}

for(i=0;i<4;i++)
{
printf("第%d个学生三门课成绩为: \n",i+1);
for(j=0;j<3;j++)
{
printf("第%d门课: ",j+1);
printf("%d\n",a[i][j]);
}
printf("\n");
}

printf("\n");

for(i=0;i<4;i++)
{
total=0;
printf("第%d个学生平均分为: ",i+1);
for(j=0;j<3;j++) total+=a[i][j];
ave=total/3.0;

printf("%.1f \n",ave);
}

for(i=0;i<3;i++)
{
total=0;
printf("第%d门课平均分为: ",i+1);
for(j=0;j<4;j++) total+=a[j][i];
ave=total/4.0;

printf("%.1f \n",ave);
}

getch();
return 1;
}

8.用指针方法编写程序,输入三个字符串,按由小到大的顺序输出。要求用函数实现,并用指向一维数组的指针作为函数的参数。

#include<conio.h>
#include<stdio.h>
#include<string.h>

void convert(char *p[3])
{
char *t;
int i,j;

for(i=0;i<3;i++)
for(j=0;j<3;j++)
if(strcmp(p[i],p[j])<0)
{
t=p[i];
p[i]=p[j];
p[j]=t;
}
}

int main()
{
static char *a[3],b[20],c[20],d[20];
int i;
a[0]=b;
a[1]=c;
a[2]=d;

printf("Please input 3 strings: \n");
for(i=0;i <3;i++)
gets(a[i]);

convert(a);

printf("After Sort: \n",a[i]);
for(i=0;i <3;i++)
printf("%s\n",a[i]);

getch();
return 0;
}

热心网友 时间:2023-11-26 05:56

你第一条if语句,输出打印n1+n2,少打个n啊
声明声明:本网页内容为用户发布,旨在传播知识,不代表本网认同其观点,若有侵权等问题请及时与本网联系,我们将在第一时间删除处理。E-MAIL:11247931@qq.com
圣斗士星矢正义传说攻略_圣斗士星矢正义传说新手攻略 圣斗士星矢正义传说怎么觉醒圣衣 圣衣玩法攻略 圣斗士星矢正义传说召唤石怎么获得 获取攻略一览 超市促销员手机上打卡迟到几分钟 在超市里打卡显示的公司是什么意思? 长鹿休闲度假农庄交通指南 求从容桂到长鹿农庄怎么坐车,详细,准确 形容神情的五字词语 女生内衣穿多久该扔掉 吴江离张家港有多远? C语言的几个小问题??高手帮帮我!!!!!!!! 谁能帮我详细解释一下 下面这个C语言程序中几个地方 台式电脑上不去网了怎么办? 同一个无线路由器,一台笔记本连网线和使用... C语言的几个小问题??高手帮帮我!!!!!!!! c语言的几个问题,能够帮助我的帮我解决一下,谢谢! 我家的台式机上不了网是怎么回事?本地连接没问题,路由器连接也没问题... 康王洗发水怎么看真假?2 我想起个群名,里面带慧宝两个字,例如,大爱慧宝妥不妥,之类的...1 梦见老邻居大婶掉进水库,后又被浪打到岸上,后来我把她救活了,... 梦见自己被水冲进海里20 电脑用的时间长了会变慢是怎么回事8 怎么查看注册时间?203 怎么看自己的注册多久了6 山东神戎电子股份有限公司怎样?10 左边三江水,右边一块田,种了十年又十年,得粮九两五钱又五钱。(打一字... 山水之间一亩田,耕了十年又十年,要问正价是多少,九两五钱又五钱。(打... 怎么查别人注册多长时间?10 南京市妇幼专家看妇科很权威吗? 为什么按了无线路由器后,笔记本可以无线上网了,但台式机却上不了... ...都用有线连接)笔记本可以上网,而台式上不了网 一个最基本的C语言程序,谁帮我解决一下问题。 我是菜鸟,刚开始怎么销售单片机?? 求教了 C语言程序设计高手来下 帮助我解决几个问题哇3 怎么查看注册时间224 什么函数不具有单调性 哪些函数没有单调性? 南京市妇幼专家黄颖看妇科怎么样? 壶口瀑布:中华民族的精神象征 阅读答案 好的多加30,要速回答。_百度知... 求老师解答:阅读下列材料。 材 怎么查看注册时间224 怎么看自己的注册多久了6 &quot;人异道,人异论,百家诛方,旨意不同&quot;这句话是什么意思2 怎么查看注册时间?203 文言文翻译:今师异道,人异论,百家殊方,指意不同,是以上亡以...19 师异道,人异论,百家殊方,指意不同.指的是什么时期的什么事件27 师异道,人异论,百家殊方,旨意不同...凡不在六艺之科,孔子...41 本人捡了一个三星s6手机,指纹解锁,刷机后,失主,还能定位吗... 我捡了一部三星S6手机,但手机有密码,有指纹,开不了,怎么办...7 我捡到一部三星S6手机,怎么解屏幕锁 三星s6指纹解锁怎么破解?捡到的1