我想知道,当我们将int转换为double时,存储int的实际结果是变更还是增加?因为int是4个字节(假设),当我们得到类型转换加倍8个字节(假设)时,那么现在大小也增加了存储double的值?如果这是一个愚蠢的问题,请放轻松吗?
我想知道实际情况是什么,编译器如何处理静态变量.与自动变量不同,静态变量的值即使在块结束后仍然存在,但编译器实际上如何处理这个?
存在这样的问题:给出两个随机整数数组,其中在每个索引处存在从0到9的数字(即,在给定数组的每个索引处存在单个数字整数).我需要找到输入数组所代表的数字之和,并将结果放在另一个数组中.
我相信我的代码一切都很好,因为我为不同的数组执行它几乎50到60次.但是当我在学校的在线评委中提交它时,它只接受了4个测试用例并拒绝了另外两个.我无法弄清楚在哪种情况下会产生错误的输出.需要一些帮助的人.
这是我的代码
public static int[] sumOfTwoArrays(int[] arr1, int[] arr2){
int size1 = arr1.length;
int size2 = arr2.length;
int carry = 0,sum,s,r;
if(size1 == size2) {
int arr3[] = new int[size1+1];
for(int i=arr1.length-1;i>=-1;i--) {
if(i==-1) {
arr3[i+1] = carry;
//System.out.println(i+1+" "+arr3[i+1]);
} else {
sum = arr1[i] + arr2[i];
if(sum>9) {
s =sum;
r = s % 10;
arr3[i+1] = carry + r;
carry = 1;
//System.out.println(i+" "+arr3[i]);
} else {
if(sum==9 && carry==1) {
s =sum+carry;
r = s …Run Code Online (Sandbox Code Playgroud) 我知道他们之间的基本区别只是在以下特殊情况下有疑问:
struct books{
int id;
char* title;
}book;
book.id=9; // this is valid;
Run Code Online (Sandbox Code Playgroud)
但在以下情况下typedef:
typedef struct books{
int id;
char*title;
}book;
book.id=9; //it is not valid we have to do like book b1; then b1.id=9 is valid
Run Code Online (Sandbox Code Playgroud)
你能告诉我的是这里发生了什么?
#include<stdio.h>
int main()
{
unsigned int n=0;
char str[100];
char *ptr,*ptr1;
printf("Enter the string = ");
gets(str);
ptr = &str[0];
while(*ptr!='\0')
{
n++;ptr++;
}
ptr=&str[0];
while(*ptr!='\0')
{
if(*ptr==' ')
{
n--;
for(ptr1=++ptr;*ptr1!='\0';ptr1++)
{
*ptr=*ptr1;
ptr++;
}
ptr=&str[0];
}
ptr++;
}
printf("Modified string = ");
for(int i=0;i<n;i++)
{
printf("%c",str[i]);
}
return 0;
}
Run Code Online (Sandbox Code Playgroud)
我知道从字符串中删除空格的另一种方法,但我想使用指针来执行此操作,但我不明白这段代码有什么问题?
我真的很感谢一些小小的帮助。
char c;
printf("%d", scanf("%s", &c)); // prints 1
printf("%d", scanf("%c", &c)); // prints 1
Run Code Online (Sandbox Code Playgroud)
我不明白为什么这两个语句都打印相同的值1?
据我所知,scanf()在早期匹配失败的情况下,返回成功匹配和分配的输入项的数量,甚至为零.那么这不是不匹配的情况吗?
我在这里想念的是什么?