本文主要是介绍哈工大 sse C语言 困难,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!
Q500.(10分数, 语言: C)利用指针能直接操作内存的特点来编程输出字符串中每个字符在内存中的存储编码(字符串中可以包含英文数字和汉字)。 程序的运行示例1如下: 请输入一个字符串,长度小于等于100:abcABC012中国人 该字符串的内存编码为: 61 62 63 41 42 43 30 31 32 d6 d0 b9 fa c8 cb 程序的运行示例2如下: 请输入一个字符串,长度小于等于100:12345上山打老虎 该字符串的内存编码为: 31 32 33 34 35 c9 cf c9 bd b4 f2 c0 cf bb a2 提示: 输出格式用"%x " 提示:为了不输出多余的ffff, 请用printf("%x ", (unsigned char)str[i] & 0xff); 或者 if (str[i] > 0xffffff00) printf("%x ", str[i] -0xffffff00);
#include <stdio.h>
#include <string.h>
#define N 100
void main(){char a[N];printf("请输入一个字符串,长度小于等于100:");gets(a);printf("该字符串的内存编码为:");printf(" ");for(int i=0;a[i]!='\0';i++){printf("%x ",(unsigned char)a[i] & 0xff);}
}
Q3335.(10分数, 语言: C)英雄卡。小明非常迷恋收集各种干脆面里面的英雄卡,为此他曾经连续一个月都只吃干脆面这一种零食,但是有些稀有英雄卡真的是太难收集到了。后来某商场搞了一次英雄卡兑换活动,只要你有三张编号连续的英雄卡,你就可以换任意编号的英雄卡。小明想知道他最多可以换到几张英雄卡(新换来的英雄卡不可以再次兑换) 输入提示信息:"Input n:", "Input card numbers:" 输入数据格式:"%d" 输出数据格式:"%d" 程序运行结果示例: Input n:6 Input card numbers:3 1 2 4 4 5 Exchanged:1
#include <stdio.h>
#define N 100
void main(){int a[N];int n;int count=0;printf("Input n:");scanf("%d",&n);printf("Input card numbers:");for(int i=0;i<n;i++){scanf("%d",&a[i]);}int b[N]={0};for(int i=0;i<n;i++){b[a[i]]++;}for(int i=0;i<N-2;i++){if(b[i]>0&&b[i+1]>0&&b[i+2]>0){b[i]--;b[i+1]--;b[i+2]--;count++;i--;}else{continue;}}printf("Exchanged:%d",count);}
Q2292.(10分数, 语言: C)用指针编程实现3X4的二维数组的元素读入以及求此二维数组的最大值及最大值下标 请用以下函数实现: void Input(int *p,int m, int n); /*数组元素读入函数*/ int FindMax(int *p, int m, int n, int *pRow, int *pCol); /*求最大值及下标函数*/若存在若干个相同最大元素,则按照第一次出现的最大值的下标输出。
***输入提示信息:"Please input your data:\n" ***输入格式要求:无格式要求 ***输出格式要求:"The maximum is %d, which is in row %d, colum %d\n"样例:Please input your data: **输入样例: 3 5 2 7 1 6 12 11 4 10 8 9 **输出样例: The maximum is 12, which is in row 1, colum 2
Input(*a,m,n);
scanf("%d",&p[i*n+j]);
if(max < p[i*n+j]){
max = p[i*n+j];
*pRow = i;
*pCol = j;
}
#include <stdio.h>
#define N 30
void Input(int *p,int m, int n); /*数组元素读入函数*/
int FindMax(int *p, int m, int n, int *pRow, int *pCol); /*求最大值及下标函数*/
void main()
{int a[N][N];int m,n;int pRow,pCol;m=3,n=4;printf("Please input your data:\n");Input(*a,m,n);printf("The maximum is %d, which is in row %d, colum %d\n",FindMax(*a, m,n,&pRow,&pCol),pRow,pCol);
}
void Input(int *p,int m, int n){for(int i=0;i<m;i++){for(int j=0;j<n;j++){scanf("%d",&p[i*n+j]); }}
}
int FindMax(int *p, int m, int n, int *pRow, int *pCol){*pRow=0;*pCol=0;int max = 0;for(int i=0;i<m;i++){for(int j=0;j<n;j++){if(max < p[i*n+j]){max = p[i*n+j];*pRow = i;*pCol = j;}}}return max;
}
Q1317.(10分数, 语言: C)写一个函数,输入一行字符,将此字符串中最长的单词输出。 输入提示信息:"输入一行文本:\n" 用gets()输入一行字符 输出提示信息:"\n最长的单词是:" 输出字符用"%c" 输出所有字符后用"\n" 程序的运行示例如下: 输入一行文本:I am a student.最长的单词是:student
#include <stdio.h>
#include <string.h>
#define N 60
void main(){char a[N]={'\0'};printf("输入一行文本:\n");gets(a);int j=0;int max=0;int maxpos=0;for(int i=0;a[i]!='\0';i++){if(a[i]!=' '){j++;}else{j=0;}if(j>max){max=j;maxpos=i-j+1;}}printf("\n最长的单词是:");for(int i=maxpos;i<maxpos+max-1;i++){printf("%c",a[i]);}
}
这篇关于哈工大 sse C语言 困难的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!