C语言/C++常见习题问答集锦(二十一)
程序之美
1、使用自定义函数,实现两个数的加法,减法,乘法,除法,除法写两个函数,有返回值的,五返回值的。
提示:主函数实现输入两个数,传值到自定义函数中,自定义函数实现这两个数的运算。
#include<stdio.h>
#include<stdlib.h>
int _add(int a,int b)
{
return a+b;
}
int _minus(int a,int b)
{
return a-b;
}
int _muti(int a,int b)
{
return a*b;
}
double divide(int a,int b)
{
if(!b)
{
printf("Error!\n");
exit(1);
}
return (double)a/b;
}
void divideEx(int a,int b)
{
if(!b)
{
printf("Error!\n");
exit(1);
}
printf("%f\n", (double)a/b);
}
int main()
{
int a,b;
char c;
while(1)
{
printf("输入两个数:");
scanf("%d%d",&a,&b);
getchar();
printf("输入运算符号(#表示退出):");
scanf("%c",&c);
switch(c)
{
case '+':
printf("%d\n",_add(a,b));break;
case '-':
printf("%d\n",_minus(a,b));break;
case '*':
printf("%d\n",_muti(a,b));break;
case '/':
printf("%f\n",divide(a,b));break;
case '#':
return 0;
}
}
return 0;
}
2、输入一串字符,输出其中前后能组成CHN的组合次数,如CCHN则输出2。
实例
输入:
CCHNCHN
输出
7
C语言代码:
#include<stdio.h>
int main(){
char s[8000];
scanf("%s",&s);
long long c=0,ch=0,chn=0;
for(int i=0;s[i]!='\0';i++){
if(s[i]=='C')c++;
else if(s[i]=='H')ch=ch+c;
else if(s[i]=='N')chn=chn+ch;
}
printf("%ld",chn);
}
C++代码:
#include<bits/stdc++.h>
using namespace std;
int main(){
char s[8000];
cin>>s;
long c=0,ch=0,chn=0;
for(int i=0;s[i]!='\0';i++){//字符串结束的标志
if(s[i]=='C')c++;
else if(s[i]=='H')ch=ch+c;
else if(s[i]=='N')chn=chn+ch;
}
cout<<chn;
}
java代码:
import java.io.*;
public class Main{
public static void main(String[]args)throws IOException{
BufferedReader br=new BufferedReader(new InputStreamReader(System.in));
String SS=br.readLine();
char[]s=SS.toCharArray();//字符串到字符的转换
long c=0,ch=0,chn=0;
for(int i=0;i<s.length;i++){//java没有\0
if(s[i]=='C')c++;
else if(s[i]=='H')ch=c+ch;
else if(s[i]=='N')chn=ch+chn;
}
System.out.print(chn);
}
}
3、用1234组合成8位数列出全部组合
#include <iostream>
using namespace std;
int main(int argc, char* argv[])
{
FILE *fp = NULL;
fp = fopen("test.txt", "a+");
char array[9];
for(int i0 =1; i0<= 4; i0++)
{
array[0] = i0 + '0';
for(int i1 = 1; i1 <=4; i1++)
{
array[1] = i1 + '0';
for(int i2 = 1; i2<=4; i2++)
{
array[2] = i2 + '0';
for(int i3 = 1; i3<=4; i3++)
{
array[3] = i3 + '0';
for(int i4 = 1; i4<=4; i4++)
{
array[4] = i4 + '0';
for(int i5 = 1; i5<=4; i5++)
{
array[5] = i5 + '0';
for(int i6 = 1; i6<=4; i6++)
{
array[6] = i6 + '0';
for(int i7 = 1; i7<=4; i7++)
{
array[7] = i7 + '0';
array[8] = '\0';
cout<<array<<endl;
fputs(array, fp);
fputs(",", fp);
}
}
}
}
}
}
}
}
fclose(fp);
return 0;
}