Почему изменение C++ влияет на программу, хотя частота, которая считается, одинакова в обоих случаях
#include<stdio.h> int main() { /*to print the frequency of odd digits*/ int i , n ,num,c=0; FILE *f1,*f2; printf("enter the no. of positive nos.\n"); scanf("%d",&n); printf("enter the numbers:\n"); f1=fopen("DATA.C","w"); for(i=0;i<n;i++) { scanf("%d",&num); putw(num,f1); } fclose(f1); f1=fopen("DATA.C","r"); f2=fopen("ODD.C","w"); while((num=getw(f1))!=EOF) if(num%2!=0) putw(num,f2); fclose(f2); printf("total frequency is::\n"); if (num%2!=0) c++; printf("%d",c); return c;
если мы поместим c++ ниже putw (num, f2), то результат будет другим, но тем же. почему?
Выше одного правильно
#include<stdio.h> int main() { int i , n ,num,c=0; FILE *f1,*f2; printf("enter the no. of positive nos.\n"); scanf("%d",&n); printf("enter the numbers:\n"); f1=fopen("DATA.C","w"); for(i=0;i<n;i++) { scanf("%d",&num); putw(num,f1); } fclose(f1); f1=fopen("DATA.C","r"); f2=fopen("ODD.C","w"); while((num=getw(f1))!=EOF) if(num%2!=0) putw(num,f2); c++; /*here is the fault*/ fclose(f2); printf("total frequency is::\n"); printf("%d",c); return c;
пожалуйста, проверьте неисправность...
Что я уже пробовал:
Я пробовал запускать оба набора кода
CPallini
Я сильно сомневаюсь, что первая версия верна. Оба фрагмента вашего кода кажутся мне ущербными.