求解一道C语言基础编程题。
intbase(intk,chars[])//按定义,k是进制(2~16),s是输入的字符串
{
int len=0,sum=0; //len 指s字符串长度,sum指转换后的k进制数
int i,j,t,n;
while (s[len]!='\0') len++; //计算s数组长度,也就查看用户从键盘输入了多少字符
i=len-1; //从最高位开始,也就是从最右侧开始计算,比如s=1234ab,先从b开始计算
while (s[i]!='\0') //逐个读取字符串s,第i位的具体字符值,s[i]是否有效
{
n=0; //s[i]是字符(char),s[i]转换成10进制对应的值
if (s[i]>='0'&&s[i]<='9') //查ascii码表
n=s[i]-48; //48即字符 '0'
else if (s[i]>='A'&&s[i]<='F') //A--F用来代表10进制下的10~15
n=10+s[i]-'A'; //s[i]是字符(char),s[i]转换成10进制对应的值
t=1;
for (j=0; j<len-i-1; j++) t=t*k;
/* //以上语句等于如下形式,s[i]对应的倍率,假设k=10,就好理解
t=1; //个位,即i=len-1时
t=1*k; //十位 即i=len-2时
t=1*k*k; //百位
t=1*k*k*k; //千位
.....
*/
sum += n*t; //合计,个+十+百+千+...
i--;
}
return (sum);
}
main()
{
int sz;
char str[20];
scanf("%d %s",&sz,str);
if (sz16)
printf("输入错误。
");
else
printf("%d
",base(sz,str));
}
~是缩进符号,自己替换成4个空格:
--------------------------------------------
#include
#include
int main(int argc, char *argv[])
{
~FILE *fp1, *fp2;
~char ch;
fp1 = fopen("file1.txt", "r");
~if (fp1 == NULL ) {
~~printf("file1.txt open error
");
~~return -1;
~}
fp2 = fopen("file2.txt", "w")
~if (fp2==NULL ) {
~~printf("file2.txt open error
");
~~fclose(fp1);
~~return -1;
~}
~for (ch = fgetc(fp1); ch != EOF; ch = fgetc(fp1)) {
~~fputc(ch, fp2);
~}
~fclose(fp1);
~fclose(fp2);
~return 0;
}
#include <stdio.h>
#define N 60 //宏定义便于替换和检测
void Scanf(float *a,int n) //输入函数
{ scanf("%f",&a[n]);}
void sort(float *a,int n) //排序函数{ int i,j; float t; for(i=0;i<n-1;i++) //选择排序法 { for(j=i+1;j<n;j++) { if(a[i]>a[j]) { t=a[i]; a[i]=a[j]; a[j]=t; } } }}void Printf(float *a,int n) //输出函数{ printf("%d# %.2fm
",n+1,a[n]);//输出格式}int main (void){ float a[N]; int i; for(i=0;i<N;i++) Scanf(a,i); sort(a,N); for(i=0;i<N;i++) Printf(a,i);}
望采纳
#include<stdio.h>
#include<stdlib.h>
#include<math.h>
typedef struct queue
{
//保存队列中的元素
int *a;
//保存队列头部元素的索引
int front;
//保存队列尾部元素的索引
int rear;
//保存队列中最多容纳的元素个数
int max;
}qu;
/*
* 初始化队列
*/
qu *initqueue(int num)
{
qu *q=(qu *)malloc(sizeof(qu));
if(q==NULL)
{
printf("create fail!\n");
exit(1);
}
q->front=0;
q->rear=0;
q->max=num;
q->a=(int *)malloc(sizeof(int)*num);
if(q->a==NULL)
{
printf("create fail!\n");
exit(1);
}
return q;
}
/*
* 判断队列是否为空(空:返回0 非空;返回1)
*/
int isempty(qu *q)
{
if(q->front==q->rear)return 0;
else return 1;
}
/*
* 判断队列是否为满(满:返回0 非满:返回1)
* (采用少占用一个空间的方式判断队列是否为满,即(rear+1)%max==front
*/
int isfull(qu *q)
{
//队列满的判断条件(少用一个存储空间)
if((q->rear+1)%q->max==q->front)return 0;
else return 1;
}
/*
* 查看队列中的元素个数
*/
int getnum(qu *q)
{
if(isempty(q)==0)return 0;
else
{
int count=(q->rear-q->front+q->max)%q->max;
return count;
}
}
/*
* 入队列
*/
void push(qu *q,int value)
{
if(isfull(q)==0)
{
printf("队列为满,无法入队!\n");
exit(1);
}
q->a[q->rear]=value;
q->rear=(q->rear+1)%q->max;
}
/*
* 出队列
*/
int pop(qu *q)
{
if(isempty(q)==0)
{
printf("队列为空,无法出队!\n");
exit(1);
}
int temp=q->a[q->front];
q->front=(q->front+1)%q->max;
return temp;
}
/*
* 查看队列首部元素
*/
int peek(qu *q)
{
if(isempty(q)==0)
{
printf("队列为空,无法查看!\n");
exit(1);
}
int temp=q->a[q->front];
return temp;
}
int main()
{
int num=5;
int temp;
qu *q=initqueue(num);
push(q,1);
push(q,2);
push(q,3);
push(q,4);
pop(q);
pop(q);
pop(q);
pop(q);
push(q,1);
push(q,2);
push(q,3);
// push(q,4);
// push(q,5);
int count=getnum(q);
printf("count=%d\n",count);
return 0;
}
C语言基础的一个例题,没看懂。一个地方请解释一下,谢谢
每个数都跟其他的数进行对比,然后记下这个数一共小过多少次,这个次数就是它的排序。第一层循环 i 从4-0 ,这5个数字又经历了一个循环j,在j循环里这个数字要跟其他的数字进行对比,其他的数字是按照降序跟这个数字进行比较,即 1. a[4].num 分别与 a[3].num, a[2].num, a[1].num,...
10分钟了解C语言基本语法知识
我们根据这一小段代码,借此了解一些C语言的基础语法知识。 1. 主函数 首先,主函数main,一个标准的主函数如下: int main() \/\/ 这是主函数 { return 0; \/\/ 主函数返回值 } main翻译成中文是主要的、最重要的意思,而在C语言里面表示一个主函数。(稍后我们会讨论什么是计算机语言里面的函数,以及主函数在C语...
一道C语言编程题,本人是初学者,求大神解答
回答:#include<stdio.h>void main(){int num[100]={0};int top=0;int temp;int i;while(1){\/\/ 输入若干个数 scanf("%d",&temp); if(temp==0) break; num[top]=temp; top++;}for(i=0;i<top;i++){ \/\/顺序输出 printf("%d",num[i]);}}
C语言编程题一道 求助大神解答?
我去敲了一下,将其补完了,测试完毕,没得错误 include<iostream>#define M 4using namespace std;int Max(int a[][M]){ int i,j,max; max=a[0][0]; for(i=0;i<2;i++){ for(j=0;j<M;j++){ if(a[i][j]>max){ max=a[i][j]; } } } return max;}vo...
各位帮忙解决一道C语言编程题.谢谢了!
include <stdio.h> int main(){int i,j,x;printf("6-1000范围内的合数有\\n");for(i=6;i<=1000;i++){x=1;for(j=2;j<=i\/2;j++)if(i%j==0)x=x+j;if(i==x)printf("%d\\n",i);}}
一道c语言题,解释一下。
结果是8 define N 2 define M N+1 define MUN (M+1)*M\/2 宏定义的带入是直接带入 也就是如下:MUN = (M+1)*M\/2 = (N+1 + 1) * N+1\/2 后一个N+1没有括号,这是规则。= (2 + 1+ 1)* 2 + 1\/2 = 8 (%d)打印结果是8 所以 ...
求讲解一道C语言的题~!
值为8 i>j的值为(0),则k+=--j; 则K=8
请帮忙写一道C语言编程题,要详细的解题分析,谢谢!
include <stdio.h> typedef struct Letter { char ch;int count;}Letter;void main(void){ int i=0;char ch='\\0';Letter let[26];for( i=0; i<26; i++ ){ let[i].ch=97+i;let[i].count=0;} printf("please input strings:\\n\\t");scanf( "%c",&ch );while( '\\n' ...
关于C语言的一道编程题,请达人们帮解答下!!
程序基本上是正确的,我输入1234567890后回车,输出是5啊。你之所以得到15,是因为你在输入这些数字的时候,输入了空格 空格也被当成偶数了,因为空格的ascii码是32,也满足那个条件 (c-48)%2==0 这句里c是字符,减去48是变成数值,虽然换成c%2在结果上是相等的,但意义是不一样的 要想让程序更...
关于c语言的一道编程题,求大神解答! 编写程序求所有两位数中其中各位数...
include <stdio.h>int main(int argc, char *argv[]){ int s32Num1 = 0; int s32Num2 = 0; int s32Index = 0; for (s32Index = 10; s32Index < 100; s32Index++) { s32Num1 = s32Index % 10; s32Num2 = s32Index \/ 10; if ((s...
滕建泰乐: #include <stdio.h> void GetNums(const int n[3], int res[3]) { if (NULL == n || NULL == res) { return; } memmove(res, n, sizeof(int) * 3);#define BACK_MOVE(src, dst) (src) += (dst >>= 1); BACK_MOVE(res[2], res[0]); BACK_MOVE(res[1], res[2]); ...
黄石市19582198192: 求解一道简单的C语言C程序C编程题 - ?
滕建泰乐: 题目没说清.1.输入仅限于小写字母还是所有字符;2 y,z输出a,b还是也按ASCII码向后推两位.#include <stdio.h>#include <string.h> int main() { char iword; char oword; while(iword = getchar()) { if(iword == '\n') break; oword = (iword - 95) % 26 + 97; printf("%c",oword); } printf("\n"); return 0; } 输入:abcdefxyz 输出:cdefghzab 此程序仅限输入小写字母.
黄石市19582198192: C语言 基础编程求解题!?
滕建泰乐: 先乘除,后加减.括号优先. 先(int)(x+y),x+y=7.2,int(7.2)=7; 然后7%2=1; 再然后1/4=0,注意1,4都是整数,因此做整数除法,结果只保留整数商. 然后x+0=x=2.5
黄石市19582198192: 求道C语言基础编程题 - ?
滕建泰乐: //第一题: #include<stdio.h> main() { int a,b,c,t; scanf("%d%d%d",&a,&b,&c); //输入三个数a,b,c if(a<b) { t=a;a=b;b=t; } if(a<c) { t=a;a=c;c=t; } if(b<c) { t=b;b=c;c=t; } printf("%d>%d>%d\n",a,b,c); }//第二题: #include<stdio.h> #include<math....
黄石市19582198192: c语言的一道编程题目,求解~~~ - ?
滕建泰乐: c语言一道题目,求解 悬赏分:0 - 离问题结束还有 14 天 23 小时 题目是:把一个链表按反序排序,即将原链头当作链尾,原链尾当作链头.将链表的数据保存在文中,并能读取出来,用函数实现.我把程序写成如下了,可是为什么保存不了呢...
黄石市19582198192: 求解一道C语言编程题 - ?
滕建泰乐: #include #define ARR_LEN 30 //数组长度 void main() { int num[ARR_LEN]; //数组 用来保存1到40之间的数 int index; //循环索引 int minNum=40; //将最小值初始化为40 int place; //位置 for(index=1;index { //如果输入的数不在范围内 则重新输...
黄石市19582198192: 一道简单的c语言题目求解 - ?
滕建泰乐: #include <stdio.h> int main() { char c[5]; printf("输入4位数\n"); scanf("%s",c); for(int i=0;i<4;i++) printf("%c ",c[i]); scanf("%s",c); return 0; }
黄石市19582198192: 5道c语言 基础题目 求解 - ?
滕建泰乐: 16.计算存放在数组score中12位学生成绩的平均分,并输出高于平均分的人数.#include <stdio.h> void main() { int score[N]={67,78,66,79,73,82,69,85,77,80,93,72}; int i; float s = 0; for(i = 0; i < N; i++) { s += score[i]; } s = s/N; int n = 0; for(i = 0; i < N;...
黄石市19582198192: 求一道C语言编程题! - ?
滕建泰乐: #include int aa(int n); int main() { int i ; while(1) { scanf("%d",&i); printf("%d\n",aa(i)); } return 0; } int aa(int n) { int sum = 0,num = 0; for(int i = 3;i{ num = (i-2)*(i-1)*i; sum +=num; } return sum; }
黄石市19582198192: 解一道C语言编程题:?
滕建泰乐: 程序如下: #include<stdio.h>void main(){ char str[256]; int i,j; printf("输入一个字符串:\n"); for(i=0;(str[i]=getchar())!='\n';i++) ; for(j=0;j<=i-1;j++) { if(str[j]>='A'&&str[j]<='Z') str[j]+=32; else if(str[j]>='a'&&str[j]<='z') str[j]-=32; } printf("转换之后...